Hmm,
ich nutze IXMLNode, damit geht wohl kein XPath - oder?
folgende
XML-Datei:
XML-Code:
<?
xml version="1.0" encoding="UTF-8"?>
<Panels>
<abc>123</abc>
<Panel id="P1">
<caption>"1"</caption>
<left>0</left>
<top>0</top>
</Panel>
<Panel id="P2">
<caption>"2"</caption>
<left>30</left>
<top>30</top></Panel>
<Panel id="P3">
<caption>"3"</caption>
<left>60</left>
<top>60</top>
</Panel>
</Panels>
und folgende Anweisungen:
Delphi-Quellcode:
Memo1.Lines.Add(XMLDocument1.DocumentElement['
abc']);
// -> 123
Memo1.Lines.Add(
xml['
abc']);
// -> 123
Memo1.Lines.Add(
xml['
*panel[@id="P1"]/caption']);
// -> Variante des Typs (NULL) konnte nicht in Typ (OleStr) konvertiert werden
Memo1.Lines.Add(
xml['
panel/caption']);
// -> Variante des Typs (NULL) konnte nicht in Typ (OleStr) konvertiert werden
Memo1.Lines.Add(
xml['
panel']);
// -> Variante des Typs (NULL) konnte nicht in Typ (OleStr) konvertiert werden
XMLDocument1.DocumentElement entspricht bei mir der Variablen "
xml".
Die Standardeigenschaft von
xml (=IXMLNode) ist ChildValues.
Auf den direkten Eintrag "abc" kann ich zugreifen, nicht aber auf die Panel-Daten.
Also muss ich mich wohl entscheiden, ob ich durch die Schnittstellenobjekte iteriere oder auf den Experten verzichte und nur über eine XPath-fähige Komponente auf die
XML-Datei zugreife...
Richtig?