Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi OpenXML / XPath / EvaluateToNode (https://www.delphipraxis.net/115068-openxml-xpath-evaluatetonode.html)

Baeuerle 5. Jun 2008 11:30


OpenXML / XPath / EvaluateToNode
 
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.

kostgr 3. Apr 2013 09:02

AW: OpenXML / XPath / EvaluateToNode
 
Erklärung des Problems siehe in meinem Kommentar in dem Post http://www.delphipraxis.net/157979-o...x-problem.html.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 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