我有一个类似的XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<channel>
<item>
<title>India Wins</title>
<cat>Cricket News</cat>
<cat>India</cat>
</item>
<item>
<title>Barcelona Wins</title>
<cat>Barcelona</cat>
<cat>Celta Vigo</cat>
<cat>Football</cat>
</item>
<item>
<title>England lost</title>
<cat>Cricket</cat>
<cat>T20</cat>
<cat>England</cat>
</item>
</channel>
</root>
我想获得板球新闻的所有头衔。
我的输出应该是:India Wins
和England lost
所以我正在运行像//*[cat="Cricket"]/title
这样的Xpath查询
它给出了结果:England lost
,这对我来说是可以理解的。
但我想做//*[contains(cat,"Cricket")]/title
类似的事情,以便类别Cricket
和Cricket News
的标题都会出现。但它没有给出任何结果。
此外,我在许多在线Xpath测试人员中运行了Xpath查询,他们给出了类似的错误消息
错误 - 第一个不允许包含多个项目的序列 contains()的参数
谁能告诉我如何解决这个问题?
答案 0 :(得分:4)
如错误所示,contains()
的第一个参数不得包含多个项目。您需要将xpath重写为以下内容:
//item[cat[contains(.,'Cricket')]]/title/text()