我有这个 XML 文档,我想在其中使用 XSLT 将其修改为不同的格式。我目前面临的问题是找到标签相对于根而不是父级的绝对位置。
例如下面的例子:
<book>
<section>
<chapter>
</chapter>
</section>
</book>
<book>
<section>
<chapter>
</chapter>
</section>
</book> <book>
<section>
<chapter>
</chapter>
</section>
</book> <book>
<section>
<chapter>
</chapter>
</section>
</book>
期望的输出:
<book id=1>
<section id=1>
<chapter id=1>
</chapter>
</section>
</book>
<book id=2>
<section id=2>
<chapter id=2>
</chapter>
</section>
</book>
<book id=3>
<section id=3>
<chapter id=3>
</chapter>
</section>
</book>
<book id=4>
<section id=4>
<chapter id=4>
</chapter>
</section>
</book>
使用 position() 可以很容易地获得图书标签的 id,但是一旦我们进入章节和章节,事情就会变得更加棘手。
解决这个问题的方法是创建一个全局变量,作为节和章的计数器,每次在文档中找到这些标记之一时,全局变量都会增加,但 XSLT 中的变量表现得像常量。
提前致谢,
fbr