//table[@class="tablehead"/tbody/tr[contains[.@class, "player"]
纠正这个结果:
//table[@class='tablehead']/tbody/tr[contains(@class, 'player')]
这将选择其属性包含字符串的每个tr
字符串值,并且 (the ) 是XML 文档中 any 的子级 a 的子级,其属性具有字符串 value 。class
"player"
tr
tbody
table
class
"tablehead"
基于 XSLT 的验证:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select=
"//table[@class='tablehead']
/tbody/tr[contains(@class, 'player')]
"/>
</xsl:template>
</xsl:stylesheet>
当对提供的 XML 文档应用此转换时(更真实一点):
<html>
<body>
<table class="tablehead">
<tbody>
<tr class="major-player">
<td>player1</td>
<td>player2</td>
</tr>
</tbody>
</table>
</body>
</html>
评估 Xpath 表达式,并将选定的节点(在本例中只有一个)复制到输出:
<tr class="major-player">
<td>player1</td>
<td>player2</td>
</tr>