我無法找到這個問題,特別是在任何地方都可以找到這個問題,我一直在努力。我希望能夠用XPath選擇集合中所有具有子節點值A的節點,其中存在具有相同子節點值A的集合中的另一個節點,並將它們組合在一起。XPath 2/XSLT:找到一組具有匹配子節點值的集合的兄弟節點
例如,我有一個列出電影的XML文檔'imdb'。這裏的節點遵循的模式:
<movie>
<title>Pirates of the Carribbean: At World's End</title>
<year>2007</year>
<directors>
<director>Gore Verbinski</director>
</directors>
<actors>
<actor>Johnny Depp</actor>
......
</actors>
</movie>
在這個例子中,我想找到同年相繼問世爲另一部電影相同的其特點約翰尼·德普的所有電影。在我的輸出中,我將這個年份排序 - 因此,每年與約翰尼德普有超過兩部電影的每一年,我都想輸出那一年以及那些電影。
我的for-each XSLT選擇到目前爲止是這樣的: <xsl:for-each select="/imdb/movie[contains(actors/actor/text(), 'Johnny Depp')][year = following-sibling::movie/year]">
,但似乎只輸出的每一部電影約翰尼·德普已經在我在做什麼錯在這裏?
謝謝!這是我正在尋找的。在發佈這個問題和你的答案之間,我發現了「爲每個組提供功能」,但很難讓它正常工作。您的示例運行良好,除非由於「copy-of select =」current-group()「'而導致輸出所有電影。我使用for-each修改了輸出,只選擇特定的信息位,並按年份對輸出進行排序,並且一切正常。 – Yair 2013-05-08 20:34:54