我昨天发布了一个问题并取得了巨大的成功,它并没有完全给我我需要的东西,但肯定足以让我走上正确的道路。我遇到了另一个困难,并希望找到类似的指导。
我有一个包含几种不同类型元素的文档,其中一些可以嵌套在其他元素中。我需要删除所有标记,并且只要存在某个元素,就只留下内部HTML。
例如,如果元素pnum存在,我需要获取整个元素并删除任何内部元素,只留下内部html。
输入:
<li>
<pnum>
blah blah
<linum>hello hello</linum>
good bye
<title>good morning</title>
</pnum>
</li>
输出:
<li>
blah blah
hello hello
good bye
good morning
<li>
我能够使用HTMLAGILITYPACK执行此操作,但我必须遍历每个节点并且性能不佳。我想知道我是否可以在doc上执行更快的XSLT转换。
提前致谢!
答案 0 :(得分:1)
我不确定您从哪里采用innerHTML
这个术语,但是自IE 4以来它通常包含标记,因此您的剥离标记请求似乎与innerHTML无关。
对于XSLT,您可以使用
<xsl:template match="li[.//pnum]">
<xsl:copy>
<xsl:value-of select="."/>
</xsl:copy>
</xsl:template>
将li
后代的pnum
元素转换为仅包含文本内容的li
。