包裹标签XSLT

时间:2013-11-06 14:19:02

标签: xslt xhtml

如果使用xhtml和&amp ;; 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>

1 个答案:

答案 0 :(得分: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>