• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一つ前の値)

XMLとXSLの結果を比較して重複を排除したい

このQ&Aのポイント
  • XMLとXSLの結果を比較して重複を排除する方法について教えてください。
  • XSLでXMLを加工する際に、現在の値と前の値を比較して重複を排除する方法が上手くいきません。
  • XSLのfor-each文を使ってXMLを加工している際に、重複を排除する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • fatback
  • ベストアンサー率84% (11/13)
回答No.1

>NAME:A attr:3 >NAME:B attr:1 >NAME:B attr:2 >という結果が得られました。 この結果は正しいのでしょうか? 結果から逆算するとデータは <ALL>  <EX attr='1'><NAME>B</NAME></EX>  <EX attr='2'><NAME>B</NAME></EX>  <EX attr='3'><NAME>A</NAME></EX> </ALL> の書き間違いですね。 -- ●preceding-siblingとkey関数を使ってみる <xsl:key name="NAME" match="EX" use="NAME" /> <xsl:template match="ALL"> <xsl:for-each select="EX[not(NAME = preceding-sibling::EX/NAME)]"> <xsl:sort select="NAME"/> <dt>NAME: <xsl:value-of select="NAME"/> <xsl:for-each select="key('NAME', NAME)"> <xsl:sort select="@attr"/> <dd>attr: <xsl:value-of select="@attr"/></dd> </xsl:for-each> </dt> </xsl:for-each> </xsl:template>

ryogoku
質問者

お礼

すみません!XML間違っていました。 fatbackさんが書いておられる通りでした。 すみません。 おかげ様でできました。 ありがとうございました!!

関連するQ&A