XSL将完全限定的命名空间添加到richtext

时间:2015-08-04 09:55:49

标签: xml xslt namespaces

我需要为所有标签添加名称空间。

输入:

<div>
    <div>Content 1</div>        
    <div>Content 2</div>
    <div>Data follows: </div>
    <ul>
        <li>Line 1</li>
        <li>Line 2</li>
        <li>Line 3</li>
        <li>Line 4</li>
        <li>Line 5</li>
    </ul>
    <div>Content 3</div>
</div>

输出应为:

<div xmlns="http://www.w3.org/1999/xhtml" >
        <div xmlns="http://www.w3.org/1999/xhtml" >Content 1</div>      
        <div xmlns="http://www.w3.org/1999/xhtml" >Content 2</div>
        <div xmlns="http://www.w3.org/1999/xhtml" >Data follows: </div>
        <ul xmlns="http://www.w3.org/1999/xhtml" >
            <li>Line 1</li>
            <li>Line 2</li>
            <li>Line 3</li>
            <li>Line 4</li>
            <li>Line 5</li>
        </ul>
        <div xmlns="http://www.w3.org/1999/xhtml" >Content 3</div>
    </div>

目前我使用它的XSL并没有在所有标签中添加命名空间。例如:它将仅添加到根div标签而不是子div / ul或任何其他标签。

我用来转换的XSL:

<xsl:template match="I | u | em | strong | a | blockquote | div | ul | ol | li | span | sup | sub | br | table | tbody | tr | th | colgroup | col | td | img | hr | font">
    <xsl:element name="{local-name()}" namespace="http://www.w3.org/1999/xhtml">
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:element>
</xsl:template>    

如果需要更多信息,请与我们联系。

谢谢, 高塔姆

0 个答案:

没有答案