0
我想在兩個屬性之一(寬度或高度)不同時選擇頁面。XPATH選擇不同的值
這裏是我的XML:
<pages>
<page id="page0001" height="1000" width="960"></page>
<page id="page4931" height="1000" width="960"></page>
<page id="page6342" height="1000" width="961"></page>
<page id="page7995" height="1001" width="961"></page>
<page id="page4461" height="1001" width="960"></page>
<page id="page4690" height="1001" width="960"></page>
<page id="page9001" height="1001" width="961"></page>
</pages>
這裏我選擇
<xsl:for-each select="/prototype/pages/page[@width != (preceding-sibling::*/@width) or @height != (preceding-sibling::*/@height) or position() = 1]">
<div class="{@width}x{@height} {@id}"></div>
</xsl:for-each>
下面的結果:
<div class="960x1000 page0001"></div>
<div class="961x1000 page6342"></div>
<div class="961x1001 page7995"></div>
<div class="960x1001 page4461"></div>
<div class="960x1001 page4690"></div>
<div class="961x1001 page9001"></div>
我希望有
<div class="960x1000 page0001"></div>
<div class="961x1000 page6342"></div>
<div class="961x1001 page7995"></div>
<div class="960x1001 page4461"></div>
什麼
我知道我的選擇不正確,我明白爲什麼。有沒有可能修改它以獲得正確的結果?
謝謝,我沒有真正能夠闡明我的選擇有什麼問題。其實我想通過使用單個選擇保存一些迭代。它對xpath的接縫太複雜了:p – Charles
@charles我懷疑它確實「保存」了任何東西,因爲處理器必須依次檢查所有的'page'元素,以決定哪些元素與謂詞相匹配。它只是顯式的「if」和謂詞將編譯成的隱式謂詞之間的區別。 –
和代碼是更清潔,但無論如何感謝:) – Charles