클래스는 XPathNavigator XPath 식을 평가하는 메서드를 제공합니다 Evaluate . 이 메서드는 Evaluate XPath 식을 사용하고, 계산하고, XPath 식의 결과에 따라 부울, 숫자, 문자열 또는 노드 집합의 W3C XPath 형식을 반환합니다.
평가 메서드
이 Evaluate 메서드는 XPath 식을 평가하여 부울(Boolean), 숫자(Double), 문자열(String) 또는 노드 집합(XPathNodeIterator)의 형식화된 결과를 반환합니다. 예를 들어 이 메서드는 Evaluate 수학 메서드에서 사용할 수 있습니다. 다음 예제 코드는 파일에 있는 모든 책의 총 가격을 계산합니다 books.xml
.
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim query As XPathExpression = navigator.Compile("sum(//price/text())")
Dim total As Double = CType(navigator.Evaluate(query), Double)
Console.WriteLine(total)
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathExpression query = navigator.Compile("sum(//price/text())");
Double total = (Double)navigator.Evaluate(query);
Console.WriteLine(total);
이 예제에서는 books.xml
파일을 입력으로 사용합니다.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
position 및 last 함수
Evaluate 메서드가 오버로드됩니다. 메서드 중 Evaluate 하나는 개체를 XPathNodeIterator 매개 변수로 사용합니다. 이 특정 Evaluate 메서드는 노드 집합 인수가 평가를 수행할 현재 컨텍스트를 지정할 수 있다는 점을 제외하고 개체만 Evaluate 매개 변수로 사용하는 메서드와 동일합니다XPathExpression. 이 컨텍스트는 XPath position()
및 last()
함수가 현재 컨텍스트 노드를 기준으로 하기 때문에 필요합니다. 위치 단계에서 술어로 사용되지 않는 한, `position()
` 함수와 `last()
` 함수는 평가를 위해 노드 집합에 대한 참조가 필요하며, 그렇지 않으면 `position
` 및 `last
` 함수가 `0
`을 반환합니다.
참고하십시오
.NET