Vyhledávání v xml dokumentu, vytvořeném uložením z excelu.   zodpovězená otázka

VB.NET, XML, Office

Dobrý den, mám problém.

Uložil jsem si sešit excelu jako "Tabulka xml 2003" (xml formát, který umí načíst excel)

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Author>Josef Hranec</Author>
  <LastAuthor>Josef Hranec</LastAuthor>
  <Created>2015-09-14T12:14:30Z</Created>
  <Version>15.00</Version>
 </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
 </OfficeDocumentSettings>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>14235</WindowHeight>
  <WindowWidth>28800</WindowWidth>
  <WindowTopX>0</WindowTopX>
  <WindowTopY>0</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font ss:FontName="Calibri" x:CharSet="238" x:Family="Swiss" ss:Size="11"
    ss:Color="#000000"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
 </Styles>
 <Worksheet ss:Name="List1">
  <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="5" x:FullColumns="1"
   x:FullRows="1" ss:DefaultRowHeight="15">
   <Row ss:Index="2">
    <Cell ss:Index="2"><Data ss:Type="String">a</Data></Cell>
   </Row>
   <Row>
    <Cell ss:Index="2"><Data ss:Type="String">b</Data></Cell>
   </Row>
   <Row>
    <Cell ss:Index="2"><Data ss:Type="String">c</Data></Cell>
   </Row>
   <Row>
    <Cell ss:Index="2"><Data ss:Type="String">d</Data></Cell>
   </Row>
  </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0.3"/>
    <Footer x:Margin="0.3"/>
    <PageMargins x:Bottom="0.78740157499999996" x:Left="0.7" x:Right="0.7"
     x:Top="0.78740157499999996"/>
   </PageSetup>
   <Selected/>
   <Panes>
    <Pane>
     <Number>3</Number>
     <ActiveRow>5</ActiveRow>
     <ActiveCol>3</ActiveCol>
    </Pane>
   </Panes>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
 </Worksheet>
</Workbook>

K tomuto formátu potřebuji přistupovat jako ke klasickému xml dokumentu.

Ovšem funkce


    Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click
        Dim XMLD As New XmlDocument
        XMLD.Load("Pracovni.xml")
        MsgBox(XMLD.SelectNodes("//Row").Count)
    End Sub

vrátí 0 i když jsou tam 4 uzly. Můžete mě prosím někdo nasměrovat?

Velice děkuji, Hranec.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hezký den, zkuste to takhle.

var XMLD = new XmlDocument();
            XMLD.Load("Pracovni.xml");
            var manager = new XmlNamespaceManager(XMLD.NameTable);
            manager.AddNamespace("o", "urn:schemas-microsoft-com:office:office");
            manager.AddNamespace("x", "urn:schemas-microsoft-com:office:excel");
            manager.AddNamespace("ss", "urn:schemas-microsoft-com:office:spreadsheet");
            manager.AddNamespace("html", "http://www.w3.org/TR/REC-html40");
            Console.WriteLine(XMLD.DocumentElement.SelectNodes("//ss:Row", manager).Count);

R.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mockrát děkuji. Funguje to perfektně, Hranec.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback