我有XML格式的表格元素,它们嵌套在不同的元素之间。这些表各有唯一的ID,但XML也有很少的引用这些表的外部参照标记
<main>
<supply>
<table id="table1">
<title>This is table1 </title>
</table>
</supply>
.
.
<order>
<table id="table2">
<title>This is table2 </title>
</table>
</order>
.
.
<maint>
<table id="table3">
<title>This is table3 </title>
</table>
</maint>
.
.
.
<xref xrefid="table2"/>
<xref xrefid="table1"/>
</main>
&#13;
xrefid与需要引用的表id相同。在输出中,外部参照应该被表元素和表格标题的出现次数替换,如下所示:
For
<xref xrefid="table2"/>
<xref xrefid="table1"/>
Expected Output:
Table2 This is table2
Table1 This is table1
&#13;
我做了以下更改,我能够正确获取表格标题但不知何故表格位置的计数不正确(比如说xrefid指的是XML中的第2个表格)
<text fixtext="Table"/>
<autocalc xpath="1 + count(//table[normalize-space(//table[@id=@xrefid]])"/>
<autocalc xpath="for $ap in ancestor-or-self::*[@xrefid][1]/@xrefid return (normalize-space(//table[$ap=@id]/title))"/>
&#13;
我得到的输出是:
Table??? This is table2
Table??? This is table1
&#13;
我需要像Table2或Table5这样的计数(而不是不正确的值表???)。我无法获取由xref引用的表的出现顺序的正确计数。任何输入都将受到高度赞赏。