當上下文指向除法/除法/ *主題時,我想要統計body/division下的所有主題標記,並將結果添加到上一個body/division/division標記的計數中。XPATH:Count Preceding Div元素
輸出=所有主題下主體/除法+體/格的計數/分
<?xml version="1.0" encoding="UTF-8"?>
<body>
<division>
<Atopic><longtitle>TitleDiv1 Atopic</longtitle></Atopic>
<Btopic><longtitle>TitleDiv1 Btopic</longtitle></Btopic>
<Ctopic><longtitle>TitleDiv1 Ctopic</longtitle></Ctopic>
<division>
<Atopic><longtitle>TitleDiv1.1 Atopic</longtitle></Atopic>
</division>
<division>
<Atopic><longtitle>TitleDiv1.2 Atopic</longtitle></Atopic>
</division>
</division>
<division>
<Atopic><longtitle>TitleDiv2 Atopic</longtitle></Atopic>
<Dtopic><longtitle>TitleDiv2 Dtopic</longtitle></Dtopic>
<division>
<Atopic><longtitle>TitleDiv2.1 Atopic</longtitle></Atopic>
</division>
<division>
<Ctopic><longtitle>TitleDiv2.2 Ctopic</longtitle></Ctopic>
</division>
</division>
</body>
因此,例如
如果我的歷境處於股利1/2,邏輯應統計body/division1下的所有*主題。所以它應該返回3(Atopic,Btopic,Ctopic)。這裏沒有前身/師/師的元素。因此o/p = 3 + 0 = 3
2.與Div1/3類似,它應該計算身體/分裂標記下的*主題,即3,並且也計數前面的body/div/div(即3 + 1 = 4)。當上下文是Div2/1時,計數器只應考慮body/division2下的*主題。
所以如果我使用Div2/1 Atopic的邏輯,它應該返回「2」,因爲Div2標籤(body/division)有2個主題並且沒有前面的body/div/div。輸出= 2。在此,Div2標籤應考慮前一個機構/部門/部門,不應將Div1的部門/部門/部門考慮在內。總之,當遇到新的身體/部門時,應該重新設置機構/部門/部門。
請指教。
這與您以前的問題有什麼不同:http://stackoverflow.com/questions/39531286/xpath-get-preceding-childrens –
P.S.如果(a)分部具有唯一的id屬性並且(b)主題具有唯一的名稱並且(c)它正確縮進,則您的示例會更清晰。也不清楚究竟是什麼'...... DIV 1 ......'等應該是;如果他們是元素,爲什麼不讓他們成爲元素? –
你好邁克爾,不同之處在於我還需要爲*主題添加除法/除法,例如「count(ancestor :: division [last()]/* [contains(name()''topic')])」。在考慮身體/部門下的*話題時,你的解決方案非常好。但是我還需要將分割/分割添加到count(ancestor :: division [last()]/* [contains(name(),'topic')])結果,以便在上下文返回1/3時返回在body/div和1 div/div = 4下的3個主題) –