在顶级父级内枚举相同的节点。 XSL

时间:2013-11-12 08:34:21

标签: xml xslt-1.0

这个问题类似于 Couunt parent nodes inside grandparent from child. XSL。但那个有点不同,这就是为什么我创造了新的。 所以,我有像这样的xml(注意!这是样本xml,所以结构可以不同)。

<a>
  <b>
    <c>     
      <d>    
        text
      </d>    
    </c>    
    <b>    
      <c>    
        <d>
          text    
        </d>   
      </c>
    </b>        
  </b>    
</a>    

我需要计算顶级<c>内的<b>个节点,如下所示:

<a>
  <b>
    <c>     
      <d>    
        text c number 1
      </d>    
    </c>    
    <b>    
      <c>    
        <d>
          text c number 2  
        </d>   
      </c>
    </b>        
  </b>    
</a>

等等。如果我的结构更深入,我仍然需要计算顶级<c>内的所有<b>并将其编号放入<d>。 注意!我在<d>里面,所以我需要从中计算。

目前我有这段代码count(ancestor::b[last()]/descendant::c/preceding-sibling::c),但它没有用((

请帮忙。谢谢。

1 个答案:

答案 0 :(得分:1)

从c / d的模板中,我写了

<xsl:number level="any" 
            count="c" 
            from="ancestor::b[parent::*[not(parent::*)]]"/>

获取父级c元素的编号,在第二级b元素中。