Hallo,
ein Problem mit OpenXML / XPath
XML:
Delphi-Quellcode:
<?
xml version="1.0" encoding="UTF-8" ?>
<root>
<item>
<
name>hans</
name>
</item>
<item>
<
name>gunther</
name>
</item>
</root>
Delphi:
Delphi-Quellcode:
var xImpl: TDomImplementation;
xDoc: TDomDocument;
xParser: TXmlToDomParser;
xRoot: TDomElement;
xImpl:=TDomImplementation.Create(
nil);
xDoc:=TDomDocument.Create(xImpl);
xParser:=TXmlToDomParser.Create(
nil);
xParser.DOMImpl:=xImpl;
xDoc:=FxParser.ParseFile('
c:\test.xml',True);
xParser.free;
xRoot:=xDoc.FindFirstChildElement;
// Jetzt meine versuche die alle in einer "Not Supportet Error" Exception enden !!!
xRoot.EvaluateToNode('
/item/name');
xRoot.EvaluateToNode('
//item/name');
xRoot.ChildNodes.Item(0).EvaluateToNode('
/name');
xRoot.ChildNodes.Item(0).EvaluateToNode('
//name');
Das Problem ist nicht der XPATH Expression sondern die Prüfung des Knoten der die EvaluateToNode aufruft.
Auszug aus XDOM 4.1
Delphi-Quellcode:
procedure TXPathExpression.SetContextNode(const Node: TDomNode);
begin
if Assigned(Node) then
if not (Node.RootDocument is TDomDocumentXPath) then // Hier ist das Problem aber warum und wie kann ich es Lösen????
raise ENot_Supported_Err.Create('Not supported error.');
FContextNode := Node;
end;
Ich hoffe Ihr kommt mit meiner beschreibung klar.
vielen dank vorab.