mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-11 13:28:04 +02:00
lazutils: xpath: test for root and //
git-svn-id: trunk@39914 -
This commit is contained in:
parent
a841f44ff5
commit
32fc4e1bed
@ -96,6 +96,8 @@ var
|
||||
Doc: TXMLDocument;
|
||||
BookStoreNode: TDOMElement;
|
||||
V: TXPathVariable;
|
||||
NodeSet: TNodeSet;
|
||||
Node: TDOMElement;
|
||||
begin
|
||||
xml:='<?xml version="1.0"?>'+LineEnding
|
||||
+'<bookstore>'+LineEnding
|
||||
@ -115,9 +117,26 @@ begin
|
||||
try
|
||||
ReadXMLFile(Doc,ss);
|
||||
BookStoreNode:=Doc.DocumentElement;
|
||||
V:=EvaluateXPathExpression('/book',BookStoreNode);
|
||||
|
||||
// check return type
|
||||
V:=EvaluateXPathExpression('/bookstore',BookStoreNode);
|
||||
debugln(['TTestLazXML.TestXPath ',dbgsname(V)]);
|
||||
AssertEquals('EvaluateXPathExpression returns class',TXPathNodeSetVariable,V.ClassType);
|
||||
AssertEquals('/bookstore returns class',TXPathNodeSetVariable,V.ClassType);
|
||||
NodeSet:=V.AsNodeSet;
|
||||
AssertEquals('/bookstore AsNodeSet',True,NodeSet<>nil);
|
||||
AssertEquals('/bookstore AsNodeSet.Count',1,NodeSet.Count);
|
||||
Node:=TDOMElement(NodeSet[0]);
|
||||
AssertEquals('/bookstore AsNodeSet[0] class',TDOMElement,Node.ClassType);
|
||||
AssertEquals('/bookstore node',True,Node=BookStoreNode);
|
||||
FreeAndNil(V);
|
||||
|
||||
// check //
|
||||
V:=EvaluateXPathExpression('//book',BookStoreNode);
|
||||
AssertEquals('//book AsNodeSet',True,V.AsNodeSet<>nil);
|
||||
AssertEquals('//book AsNodeSet.Count',1,V.ASNodeSet.Count);
|
||||
Node:=TDOMElement(V.AsNodeSet[0]);
|
||||
AssertEquals('//book node','book',Node.TagName);
|
||||
|
||||
finally
|
||||
V.Free;
|
||||
Doc.Free;
|
||||
|
Loading…
Reference in New Issue
Block a user