私は次のようなxmlを持っています:
<bookstores>
<bookstore>
<book id="1">
<author>ABC</author>
</book>
<book id="2">
<title>YYY</title>
</book>
</bookstore>
<bookstore>
<book id="3">
<author>ABC</author>
</book>
<book id="4">
<author>DEF</author>
</book>
</bookstore>
<bookstore>
<book id="5">
<price>50</price>
</book>
<book id="6">
<title>ZZZ</title>
</book>
</bookstore>
</bookstores>
「本」ノードの子の最初のオカレンス、つまり「本」ノードのすべての一意の子ノードを選択したいと思います。
したがって、出力は次のようになります。
author
title
price
xslt を次のように記述しました。
<xsl:for-each select="bookstores/bookstore/book">
<xsl:if test="count(preceding-sibling::*[1]) = 0">
<xsl:value-of select="local-name(*[1])"/>
</xsl:if>
</xsl:for-each>
それは私に何も返さなかった...誰か私にこれについて助けてもらえますか?ありがとう!!
アップデート:
xml に複数の「本屋」要素があり、各「本屋」のコンテキスト内での一意性を制限して、「著者」が 1 つの「本屋」に表示されるようにしたい場合はどうすればよいでしょうか。別の「書店」に登場?