XSLT转换 - INNERHTML

3

昨天我发布了一个问题,获得了很大的成功。虽然它没有完全给我所需的,但肯定已经足够让我走上正确的道路。现在我遇到了另一个困难,希望能找到类似的指导。

我有一个文档,其中包含几种不同类型的元素,有些可以嵌套在其他元素中。每当出现特定元素时,我需要删除所有标记并仅留下内部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来完成这个任务,但需要遍历每个节点,性能不是很好。我想知道是否有更快的XSLT转换方法可以应用到文档中。
提前感谢!
1个回答

1

我不确定你从哪里得到了术语“innerHTML”,但自IE 4以来,它通常包括标记,因此您要求去除标记似乎与innerHTML无关。

至于XSLT,您可以使用

<xsl:template match="li[.//pnum]">
  <xsl:copy>
    <xsl:value-of select="."/>
  </xsl:copy>
</xsl:template>

要求将任何具有 pnum 后代的 li 元素转换为只包含文本内容的 li

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - HelpMeWithXSLT
我尝试了这个,但不幸的是它似乎根本不起作用。以下代码什么也没做,可能是我犯了一个错误:

blah

- HelpMeWithXSLT
http://xsltransform.net/ejivdGY 是一个在线示例,输入您的问题和我的建议,并显示所需的输出。 - Martin Honnen
而 http://xsltransform.net/ejivdGY/1 是一个适应性更强的版本,它还可以处理您评论中的输入。 - Martin Honnen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接