:
//td[text()[contains(.,'Good bye')]]
:
出现此问题的原因不是文本节点的字符串值是多行字符串-真正的原因是该td
元素具有多个文本节点子级。
:
//td[contains(text(),"Good bye")]
。
根据XPath 1.0规范(在XPath 2.0中,这只会引发类型错误),对需要字符串参数但传递给节点集的函数的求值,仅接受节点中第一个节点的字符串值,设置 。
:
"
Hello world "
。
:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="//td[text()[contains(.,'Good bye')]]"/>
</xsl:template>
</xsl:stylesheet>
<table>
<tr>
<td>
Hello world <i> how are you? </i>
Have a wonderful day.
Good bye!
</td>
</tr>
<tr>
<td>
Hello NJ <i>, how are you?
Have a wonderful day.</i>
</td>
</tr>
</table>
:
<td>
Hello world <i> how are you? </i>
Have a wonderful day.
Good bye!
</td>