Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将子元素放在xslt中父元素的外部_Xslt_Xslt 2.0 - Fatal编程技术网

将子元素放在xslt中父元素的外部

将子元素放在xslt中父元素的外部,xslt,xslt-2.0,Xslt,Xslt 2.0,使用XSLT将子节点放置在父节点之外 输入: <?xml version="1.0" encoding="UTF-8"?> <p>para content <ol> <li>li content</li> <li>li content</li> <li>li content</li>

使用XSLT将子节点放置在父节点之外

输入:

<?xml version="1.0" encoding="UTF-8"?>
  <p>para content
         <ol>
            <li>li content</li>
            <li>li content</li>
            <li>li content</li>
        </ol>
     Para content continues
  </para>

对位含量
  • li内容
  • li内容
  • li内容
  • 第2段内容继续
    输出

       <p>para content Para content continues</p>
       <ol>
                <li>li content</li>
                <li>li content</li>
                <li>li content</li>
      </ol>
    
    段落内容段落内容继续

  • li内容
  • li内容
  • li内容
  • 我已尝试使用以下代码:

    <xsl:template match="p">
        <p><xsl:value-of select="node()"/></p>
            <xsl:choose>
            <xsl:when test="child::ol">
                <ul>
                    <xsl:apply-templates select="ol"/>
                </ul>
            </xsl:when>
            </xsl:choose>           
    </xsl:template>
    
    
    

    但获得的输出如下:

        <p>para content</p>
        <p>para content
    </p><ul>
        li content
        li content
        li content
    </ul>
    
    段落内容

    对位含量

      li内容 li内容 li内容
    段落内容继续缺少文本

    编写模板

    <xsl:template match="p">
      <xsl:copy>
        <xsl:apply-templates select="text()"/>
      </xsl:copy>
      <xsl:apply-templates select="*"/>
    </xsl:template>
    
    
    
    当然,从标识转换开始创建样式表

    <xsl:template match="@* | node()">
      <xsl:copy>
        <xsl:apply-templates select="@* , node()"/>
      </xsl:copy>
    </xsl:template>
    

    请向我们展示您的尝试。。。