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 - Fatal编程技术网

用于xslt中的每个

用于xslt中的每个,xslt,Xslt,输入: <lq> <ol class="- topic/ol "> <li>Text 1 <ol class="- topic/ol "> <li>Text 2</li> <li>Text 3</li> </ol> </li> <li>Text 4</li&

输入:

<lq>
   <ol class="- topic/ol ">
     <li>Text 1
       <ol class="- topic/ol ">
          <li>Text 2</li>
          <li>Text 3</li>
       </ol>
     </li>
     <li>Text 4</li>
     <li>Text 5</li>
   </ol>
</lq>

  • 文本1
  • 文本2
  • 文本3
  • 文本4
  • 文本5
  • 我们应该:

    <node>
      <p type="extract_number_1">Text 1</p>
      <p type="extract_number_2">Text 2</p>
      <p type="extract_number_2">Text 3</p>
      <p type="extract_number_1">Text 4</p>
      <p type="extract_number_1">Text 5</p>
    </node>
    
    
    文本1

    文本2

    文本3

    文本4

    文本5

    试用代码:

    <xsl:template match="lq/ol">
        <xsl:for-each select="li">
            <p type="extract_number_{position()}">
              <xsl:apply-templates/>
            </p>
        </xsl:for-each>
    </xsl:template>
    
    
    

    上面我已经提到了我的
    输入
    输出应该是
    尝试过的代码
    。这里的
    应该是
  • 位置


    作为我的代码,我没有得到预期的输出。我正在使用XSLT2.0。我怎样才能解决这个问题。谢谢。

    如果您希望
    属性中的数字显示嵌套级别,请使用例如

        <xsl:template match="lq/ol">
            <xsl:apply-templates select=".//li"/>
        </xsl:template>  
    
       <xsl:template match="lq/ol//li">
            <p type="extract_number_{count(ancestor::ol)}">
              <xsl:value-of select="text()"/>
            </p>
       </xsl:template>
    
    
    


    如果您希望
    type
    属性中的数字显示嵌套级别,请使用例如

        <xsl:template match="lq/ol">
            <xsl:apply-templates select=".//li"/>
        </xsl:template>  
    
       <xsl:template match="lq/ol//li">
            <p type="extract_number_{count(ancestor::ol)}">
              <xsl:value-of select="text()"/>
            </p>
       </xsl:template>
    
    
    


    select=“li”
    应该一直往下看:
    select=“.//li”
    (只是猜测,我这里没有工具集)type
    属性中的数字来自哪里?这似乎根本不是一个职位。您是否查找嵌套级别?@MartinHonnen这是
    li
    的位置<代码>文本1
    属于级别1
    li
    <代码>文本2
  • 文本3
    在级别1
    li
    的内部。然后他们是第二级。我用过。但是不起作用。
    select=“li”
    应该一直向下:
    select=“.//li”
    (只是猜测,我这里没有工具集)
    type
    属性中的数字来自哪里?这似乎根本不是一个职位。您是否查找嵌套级别?@MartinHonnen这是
    li
    的位置<代码>文本1
    属于级别1
    li
    <代码>文本2
    文本3
    在级别1
    li
    的内部。然后他们是第二级。我用过。但不起作用。