XML의 모든 요소에 대한 키 값 쌍을 작성하려고합니다. 예 :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>
가 어떻게이 사용할 수 : 다른 템플릿의 입력 XML로
<xsl:value-of select="/XML/content" disable-output-escaping="yes"/>
를?