在XPath中有一种方法可以返回包含标签的子树吗?如果有,怎么样?

时间:2010-12-31 07:53:10

标签: xpath

例如,我有以下XML文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
  <book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
  </book>
  <book>
    <title lang="eng">Learning XML</title>
    <price>39.95</price>
  </book>
</bookstore>

我想查询书籍并返回以下文字:

<title lang="eng">Harry Potter</title>
<price>29.99</price>

XPath有可能吗?如果是,我该怎么做呢?

谢谢。

2 个答案:

答案 0 :(得分:2)

如果你只想要第一本书的子节点,你可以这样做:

//book[1]/*

或者更明确一点:

/bookstore/book[1]/*

答案 1 :(得分:1)

XPath表达式可以选择您想要的节点,但序列化取决于托管XPath及其API的编程语言(如XSLT,C#,PHP,Java)。(

此XPath表达式

/*/book[1]/*

精确选择所需节点

<title lang="eng">Harry Potter</title>
<price>29.99</price>

上面的XPath表达式,用简单的英语表示:

选择作为第一个(按文档顺序)book元素的子元素的所有元素,该元素是XML文档的顶级元素(无论其名称是什么)的子元素