0

中显示内容books.xml

cat  books.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>   
   <book category="JAVA">
      <title lang="en">Learn Java in 24 Hours</title>
      <author>Robert</author>
      <year>2005</year>
      <price>32.00</price>
   </book>
   <book category="XML">
      <title lang="en">Learn XPath in 24 hours</title>
      <author>Jay Ban</author>
      <year>2010</year>
      <price>16.50</price>
   </book>   
</books>

xquery 字符串:

xstring='''
for $x in doc("books.xml")/books/book
where $x/price>30
return $x/title'''

为什么用xidel提取不出价格大于30的书名?

两者where $x/price>30where $x/price/text)>30不能生效。

在此处输入图像描述

4

2 回答 2

0

假设您的 xml 存储在 file.xml 中,这应该可以工作:

xidel file.xml --xquery 'for $x in //book where $x/price/text() gt 30 return $x/title'

我的输出:

Learn Java in 24 Hours
于 2020-09-17T14:15:50.013 回答
0
xquery='''
for $x in doc("books.xml")/books/book
where $x/price/text() >30
return $x/title'''

bash 命令:

xidel books.xml --xquery  "$xquery"
于 2020-09-17T15:11:21.317 回答