0

如果标签中有 ul 或 ol 之类的子项,我如何使用 xhtml 和 xslt 将内容包装在标签内?您可以查看示例以了解我的意思。

例子:

   <ul> // Input file
        ...
        <li></li>
        <li>text1 <div>text2</div></li>
        <li>text3 <div>text4</div> text5 </li>
        <li>text6 <ul><li>text7</li></ul> </li>
        <li><div>text8 <ul><li>text9</li></ul></div></li>
        <li>
            ...
            <ol>...</ol>
            ...
        </li>
        ...
    </ul>

输出文件:

    <ul> // Output file
        ...
        <li></li>
        <li>text1 <div>text2</div></li>
        <li>text3 <div>text4</div> text5 </li>
        <li><div>text6 <ul><li>text7</li></ul></div></li>
        <li><div>text8 <ul><li>text9</li></ul></div></li>
        <li><div>
            ...
            <ol>...</ol>
            ...
        </div></li>
        ...
    </ul>
4

1 回答 1

3

XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:template match="node()|@*">
      <xsl:copy>
         <xsl:apply-templates select="@*|node()" />
      </xsl:copy>
   </xsl:template>
   <xsl:template match="li[ul|ol]">
      <xsl:copy>
         <xsl:apply-templates select="@*" />
         <div>
            <xsl:apply-templates select="node()" />
         </div>
      </xsl:copy>
   </xsl:template>
</xsl:stylesheet>

生产

<?xml version="1.0" encoding="utf-8"?><ul> // Input file
        ...
        <li/>
        <li>text1 <div>text2</div></li>
        <li>text3 <div>text4</div> text5 </li>
        <li><div>text6 <ul><li>text7</li></ul> </div></li>
        <li><div>text8 <ul><li>text9</li></ul></div></li>
        <li><div>
            ...
            <ol>...</ol>
            ...
        </div></li>
        ...
    </ul>
于 2013-11-06T15:28:12.173 回答