Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi OpenXML 3.1 - XPath - wie? (https://www.delphipraxis.net/102525-openxml-3-1-xpath-wie.html)

worker 30. Okt 2007 13:38


OpenXML 3.1 - XPath - wie?
 
Hallo zusammen,

habe leider per Suche nicht viel bzgl. OpenXML (XDOM 3.1) finden können, daher versuche ich es auf diesem Weg.

Ich probiere derzeit, auf eine bestimmte Node in meinem XML-Dokument per XPath zuzugreifen, da ich denke, dass dieses die komfortablere Methode ist, als sich per Next, FindChild etc. durchzuhangeln. Dieser Versuch scheitert allerdings kläglich.

Inhalt der XML-Datei:
XML-Code:
<?xml version="1.0" encoding="UTF-8"?>
<EINRICHTUNG xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <HEADER>
      <HAUSHALT>
         <STR>Musterstr</STR>
         <ORT>Musterort</ORT>
      </HAUSHALT>
      <ZEITRAUM>
         <BEGINN>01.01.2007</BEGINN>
         <ENDE>31.12.2007</ENDE>
      </ZEITRAUM>
   </HEADER>
   <KUECHE>
      <BESTAND>
         <FARBE>ROT</FARBE>
         <BEZ>J</BEZ>
         <TELLER>
            <TELLER-ART>1</TELLER-ART>
            <TELLER-CODE/>
            <RAND>
               <EINHEIT/>
               <WERT>1.000</WERT>
            </RAND>
         </TELLER>
         <TASSE>
            <ZEITRAUM>
               <BEGINN>01.01.2007</BEGINN>
               <ENDE>31.07.2007</ENDE>
            </ZEITRAUM>
            <ZEITRAUM>
               <BEGINN>01.08.2007</BEGINN>
               <ENDE>31.12.2007</ENDE>
            </ZEITRAUM>
         </TASSE>
         <MESSER>
            <ZEITRAUM>
               <BEGINN>01.01.2007</BEGINN>
               <ENDE>31.12.2007</ENDE>
            </ZEITRAUM>
            <VERSUCH>40</VERSUCH>
            <IXC>60.00</IXC>
         </MESSER>
      </BESTAND>
      <KOSTEN/>
   </KUECHE>
</EINRICHTUNG>
Ich möchte nun bspw. sämtliche Childnodes von 'HEADER' in einer TDomNodeList haben.
Versuch:
Delphi-Quellcode:
     
      //erste Node selektieren
      nNode := Parser.Doc.evaluateToNode('EINRICHTUNG/HEADER');
     
     //sämtliche Childnodes in Liste einfügen
      nlNodeList := nNode.childNodes;
nNode bleibt allerdings leer.
Habe hier im Forum gelesen, dass dieses Problem mit dem Namespace zu tun haben kann, habe Lösungen allerdings nur in Bezug auf den MSXML-Parser gefunden, und schaffe es nicht, dieses für XDOM umzusetzen :(

Ich hoffe, mir kann jemand helfen, mich damit zurecht zu finden.
Ich glaube, wenn man es erst einmal verstanden hat, ist es ganz einfach - nur soweit bin ich leider noch nicht.

Danke.

worker 31. Okt 2007 06:27

Re: OpenXML 3.1 - XPath - wie?
 
Guten Morgen,

also, ich habe nun zig Möglichkeiten bzgl. der XPath-Expression durchprobiert, komme aber leider nicht zum gewünschten Ergebnis.
Bin ich denn der Einzige, der sich an OpenXML und XPath versucht? :(

CleverundSmart 3. Jun 2008 20:30

Re: OpenXML 3.1 - XPath - wie?
 
Hallo Worker,
hab' durch Zufall deine Frage gelesen. Versuch's mal ohne die xmlns Angabe im Einrichtung Tag. Hatte mit einem anderen Tool ein Problem, solange dieses Attribut vorhanden war. Vielleicht hilft's ja.

Gruß
CleverundSmart

CleverundSmart 5. Jun 2008 09:21

Re: OpenXML 3.1 - XPath - wie?
 
Moin,
ich noch mal. Könnte es sein, dass es '/EINRICHTUNG/HEADER' heißen müsste?

Gruß
CleverundSmart


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz