XML のすべての要素のキーと値のペアを作成しようとしています。例:
<a>
<b>1</b>
<c>2</c>
</a>
戻ります:
<KEY_VALUE_PAIR>
<KEY>a/b</KEY>
<VALUE>1</VALUE>
</KEY_VALUE_PAIR>
<KEY_VALUE_PAIR>
<KEY>a/c</KEY>
<VALUE>2</VALUE>
</KEY_VALUE_PAIR>
しかし、私の問題は、入力 xml を文字列として取得したいということです。
したがって、これを入力として使用する代わりに:
<a>
<b>1</b>
<c>2</c>
</a>
私はこれを使いたい:
<XML>
<content><a><b>xyz</a></b></content>
</XML>
これは私のコードです:ほとんど機能します。キーと値のペアの作成は問題ありませんが、XML/コンテンツで XML を取得する代わりに、入力 xml のキーと値のペアを作成します。
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/XML/content">
<xsl:value-of select="/XML/content" disable-output-escaping="yes"/>
<xsl:call-template name="CreateNotificationValues"/>
<xsl:call-template name="CreateNotificationClear"/>
</xsl:template>
<xsl:template match="/" name="CreateNotificationValues">
<xsl:for-each select="//*[count(child::*) = 0]">
<KEY_VALUE_PAIR>
<KEY>
<xsl:for-each select="ancestor::*"><xsl:value-of select="name()"/>/</xsl:for-each>
<xsl:value-of select="name()"/>
</KEY>
<VALUE>
<xsl:value-of select="text()"/>
</VALUE>
</KEY_VALUE_PAIR>
</xsl:for-each>
</xsl:template>
<xsl:template match="/KEY_VALUE_PAIR" name="CreateNotificationClear">
</xsl:template>
これをどのように使用できますか:
<xsl:value-of select="/XML/content" disable-output-escaping="yes"/>
別のテンプレートの入力 xml として ?