如何使用XPATH查询以下xml?

时间:2015-07-25 11:21:51

标签: xml xpath

这是xml文件

   
<bookstore>

<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>

我正在尝试将所有文​​字都放在“网络”类别下的titleauthor标签中

我尝试使用

//book[category="WEB"][//author or //title]//text()

但这不起作用

这样做的正确方法是什么。

1 个答案:

答案 0 :(得分:2)

一种可能的方式:

//book[@category="WEB"]/*[self::author or self::title]/text()

简要说明:

  • //book[@category="WEB"]:在XML文档的任何位置找到book个元素,category属性值等于WEB
  • /*[self::author or self::title]:查找此类book的直接子元素,其中子名称等于authortitle
  • /text():从此类author / title返回直接子文本节点