例如,我得到这样的html字符串:
<p><br><a href=\"http://www.hello.com/en/\">www.hello.com</a></p>
我希望得到这样的结果:
<br><a href=\"http://www.hello.com/en/\">www.hello.com</a>
但是在使用XPath语句时我终于得到了“www.hello.com”
//p/text()
任何想法?
答案 0 :(得分:1)
使用此:
//p
选择p
元素。
答案 1 :(得分:1)
But I finally get "www.hello.com" when using the the XPath statement
//p/text()
这将选择任何文本节点,它是文档中p
元素的子元素。
但是,您不仅需要文本节点子节点,还需要任何子节点,包括<br>
和<a>
等元素。
<强>解决方案强>:
使用:
/p/node()
根据提供的XML评估此XPath表达式(更正为格式良好的XML文档):
<p><br/><a href="http://www.hello.com/en/">www.hello.com</a></p>
选择了以下两个节点:
<br/><a href="http://www.hello.com/en/">www.hello.com</a>
基于XSLT的验证:
这种转变:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:copy-of select="/p/node()"/>
</xsl:template>
</xsl:stylesheet>
应用于提供的XML文档:
<p><br/><a href="http://www.hello.com/en/">www.hello.com</a></p>
将所选节点复制到输出:
<br/><a href="http://www.hello.com/en/">www.hello.com</a>
答案 2 :(得分:0)
/p/*
将检索作为元素p子元素的所有元素。这就是你想要的。
警告即可。您的元素<br>
格式不正确。你应该关闭它,以便它可以是一个格式良好的空元素<br/>