首页 > 解决方案 > 对 div 内的所有 HTML(非纯文本)元素使用 XSL 模板匹配

问题描述

我基本上需要弄清楚如何选择 div 的内部并将其中的所有 HTML 元素显示为 HTML 元素。我尝试过的一切都导致显示纯文本或保留外部 div。

我试过这个:

<xsl:template match="content">
    <xsl:apply-templates select='*'/>
</xsl:template>

我也试过这个:

<xsl:template match="content/div/*">
    <xsl:value-of select="*"/>
</xsl:template>

示例 1:潜在的 XML 内容:

<content>
    <div id="definition" class="block">
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquid reprehenderit consequatur voluptatem harum laudantium! Repellat nam laborum ipsum possimus, corrupti voluptate, iste odio vero nesciunt culpa assumenda nihil ducimus accusantium.</p>
    </div>
</content>

示例 2:潜在的 XML 内容:

<content>
    <div id="definition" class="block">
        <ul>
            <li>Lorem ipsum dolor.</li>
            <li>Sit amet consectetur.</li>
            <li>Adipisicing elit.</li>
            <li>Aliquid reprehenderit.</li>
        </ul>
    </div>
</content>

我需要 XSLT 像这样简单地提取 div 中的 HTML 元素...

例 1:

<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquid reprehenderit consequatur voluptatem harum laudantium! Repellat nam laborum ipsum possimus, corrupti voluptate, iste odio vero nesciunt culpa assumenda nihil ducimus accusantium.</p>

例 2:

<ul>
    <li>Lorem ipsum dolor.</li>
    <li>Sit amet consectetur.</li>
    <li>Adipisicing elit.</li>
    <li>Aliquid reprehenderit.</li>
</ul>

标签: xmlxslt

解决方案


尝试:

<xsl:template match="content/div">
    <xsl:copy-of select="*"/>
</xsl:template>

推荐阅读