Xpath:获取非兄弟元素

时间:2017-05-05 21:30:32

标签: xpath

我有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;
&#13;
&#13;

xrefid与需要引用的表id相同。在输出中,外部参照应该被表元素和表格标题的出现次数替换,如下所示:

&#13;
&#13;
For
<xref xrefid="table2"/>
<xref xrefid="table1"/>

Expected Output:
Table2 This is table2
Table1 This is table1
&#13;
&#13;
&#13;

我做了以下更改,我能够正确获取表格标题但不知何故表格位置的计数不正确(比如说xrefid指的是XML中的第2个表格)

&#13;
&#13;
<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;
&#13;
&#13;

我得到的输出是:

&#13;
&#13;
Table??? This is table2
Table??? This is table1
&#13;
&#13;
&#13;

我需要像Table2或Table5这样的计数(而不是不正确的值表???)。我无法获取由xref引用的表的出现顺序的正确计数。任何输入都将受到高度赞赏。

0 个答案:

没有答案