Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
Xml 查找到祖先节点的相对位置的xsl_Xml_Xslt_Position_Relative Path_Ancestor - Fatal编程技术网

Xml 查找到祖先节点的相对位置的xsl

Xml 查找到祖先节点的相对位置的xsl,xml,xslt,position,relative-path,ancestor,Xml,Xslt,Position,Relative Path,Ancestor,获取childsdivision相对于节节点的位置时遇到一些问题。这是我的XML文件: <document> <section> <division>text of division</division> <division>text of division</division> <division>text of division</division

获取childs
division
相对于
节点的位置时遇到一些问题。这是我的XML文件:

<document>
    <section>
        <division>text of division</division>
        <division>text of division</division>
        <division>text of division</division>
    </section>
    <section>
        <division>text of division</division>
        <division>text of division</division>
        <division>text of division</division>
    </section>
</document>
而不是这个:

section 1
division 1.2 
division 1.4
division 1.6
section 2
division 2.2
division 2.4
division 2.6
它看起来像是
。/section[position()]
。/祖先/position()
但它错了……谢谢

请尝试使用
xsl:number
代替
position()

例如:

XML输入

<document>
    <section>
        <division>text of division</division>
        <division>text of division</division>
        <division>text of division</division>
    </section>
    <section>
        <division>text of division</division>
        <division>text of division</division>
        <division>text of division</division>
    </section>
</document>
section 1
division 1.1
division 1.2
division 1.3
section 2
division 2.1
division 2.2
division 2.3
<div class="section">
   <p>section 1</p>
   <div class="division">
      <p>division 1.1</p>
   </div>
   <div class="division">
      <p>division 1.2</p>
   </div>
   <div class="division">
      <p>division 1.3</p>
   </div>
</div>
<div class="section">
   <p>section 2</p>
   <div class="division">
      <p>division 2.1</p>
   </div>
   <div class="division">
      <p>division 2.2</p>
   </div>
   <div class="division">
      <p>division 2.3</p>
   </div>
</div>

编辑:下面是另一个更接近您在XSLT中所做工作的示例。(我添加了
元素来包装文本

XSLT1.0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="text()"/>

    <xsl:template match="section|division">
        <xsl:value-of select="concat(name(),' ')"/>
        <xsl:number level="multiple" count="section|division"/>
        <xsl:text>&#xA;</xsl:text>
        <xsl:apply-templates/>
    </xsl:template>

</xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="text()"/>

    <xsl:template match="section|division">
        <div class="{name()}">
            <p>
                <xsl:value-of select="concat(name(),' ')"/>
                <xsl:number level="multiple" count="section|division"/>             
            </p>
            <xsl:apply-templates/>              
        </div>
    </xsl:template>

</xsl:stylesheet>


输出

<document>
    <section>
        <division>text of division</division>
        <division>text of division</division>
        <division>text of division</division>
    </section>
    <section>
        <division>text of division</division>
        <division>text of division</division>
        <division>text of division</division>
    </section>
</document>
section 1
division 1.1
division 1.2
division 1.3
section 2
division 2.1
division 2.2
division 2.3
<div class="section">
   <p>section 1</p>
   <div class="division">
      <p>division 1.1</p>
   </div>
   <div class="division">
      <p>division 1.2</p>
   </div>
   <div class="division">
      <p>division 1.3</p>
   </div>
</div>
<div class="section">
   <p>section 2</p>
   <div class="division">
      <p>division 2.1</p>
   </div>
   <div class="division">
      <p>division 2.2</p>
   </div>
   <div class="division">
      <p>division 2.3</p>
   </div>
</div>

第一节

第1.1分部

第1.2分部

第1.3分部

第二节

第2.1分部

第2.2分部

第2.3分部


噢,非常感谢,它起作用了!这是另一个与此相关的问题。如果我在xml节点中有许多
,类似这样的内容:
文本文本文本文本文本文本文本文本文本文本文本

如何对文档中而非部门中的所有进行编号?很抱歉,已找到
。再次感谢!