我有一个这样的 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>
Run Code Online (Sandbox Code Playgroud)
我想获得 Cricket News 的所有标题。就像我的输出应该是:India Wins和England lost
所以我像这样运行 Xpath 查询//*[cat="Cricket"]/title
它给出了结果:England lost,这对我来说是可以理解的。
但我想做到像类似的事情//*[contains(cat,"Cricket")]/title,所以该类别的两个冠军Cricket和Cricket News会来。但它没有输出。
此外,我在许多在线 Xpath 测试人员中运行了 Xpath 查询,他们给出了这样的错误消息
错误 - 不允许将包含多个项目的序列作为 contains() 的第一个参数
谁能告诉我如何解决这个问题?
正如错误所说,的第一个参数contains()不能有多个项目。您需要将您的 xpath 重写为这样的:
//item[cat[contains(.,'Cricket')]]/title/text()
Run Code Online (Sandbox Code Playgroud)