Einzelnen Beitrag anzeigen

Baeuerle

Registriert seit: 17. Mär 2005
Ort: Ettenheim
283 Beiträge
 
Delphi 2005 Professional
 
#1

OpenXML / XPath / EvaluateToNode

  Alt 5. Jun 2008, 11:30
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.
  Mit Zitat antworten Zitat