0
我在使用XPATH時遇到問題,可能會使用一些指導。我已經使用了w3schools教程 - 它不夠先進,無法幫助我弄清楚我做錯了什麼。 (我預計未來需要更多地使用XPATH--所以推薦給好的教程或書籍也將被讚賞)。XPATH:計算祖先節點中的先前元素
我正在研究一本有可選標題的書。如果使用listTitle,我想預先將一個列表編號與標題連接起來,並鏈接到章節和列表編號(基於listTitle)。不包含listTitle的列表不應增加列表計數器。
下面是示出與所希望的結果的一例的XML文件:
<chapter><title>Chapter 1></title>
<para>Para text.</para>
<ul><listTitle>List 1-1</listTitle> .... </ul>
<section><title>Section 1.1</title>
<ol> .... </ol>
<ol><listTitle>List 1-2</listTitle> ... </ol>
</section>
<ol><listTitle>List 1-3</listTitle> ... </ol>
<ul><listTitle>List 1-4</listTitle> ... </ul>
</chapter>
<chapter><title>Chapter 2></title>
<para>Para text.</para>
<ul><listTitle>List 2-1</listTitle> .... </ul>
<section><title>Section 2.1</title>
<ol> .... </ol>
<ol><listTitle>List 2-2</listTitle> ... </ol>
</section>
<ol><listTitle>List 2-3</listTitle> ... </ol>
<ul><listTitle>List 2-4</listTitle> ... </ul>
</chapter>
然而,實際的結果稍有不同。我的listTitle計數並沒有從章節層面重新開始......所以listTitles繼續計數(也就是,而不是List 2-1,我得到List 2-5)。我只是無法弄清楚如何指定章節關係以在章節級別重置計數。
我XPATH:
'concat("List ",count(../preceding::chapter)+1," - ",(count(preceding::*:ol/*:listTitle)
+ count(ancestor::*:ol/*:listTitle)+ count(preceding::*:ul/*:listTitle)
+ count(ancestor::*:ul/*:listTitle))," ")'
?你是否使用xpath作爲XSLT的一部分? (如果是這樣,['xsl:number'](https://www.w3.org/TR/xslt#number)將會非常有幫助。) –
嗨丹尼爾 - 感謝您的洞察力。不幸的是,我受限於爲我的部署在一個css文件中的函數中進行計數......它非常具體,並且是Oxygen XML Author專有的。 –