私のxmlは次のようになります:
<record>
<name>ABC</name>
<address>
<street>sss</street>
<city>ccc</city>
<state>ttt</state>
</address>
</record>
xslを使用して要素「street」を読み取ろうとしています。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:template match="/">
<xsl:value-of select="record/address/street" />
</xsl:template>
</xsl:stylesheet>
しかし、それは何の出力も与えません。
入力xmlが有効なxml形式であるのに、なぜこれが発生するのですか?では、要素名の文字エンティティを含むxmlファイルを変換する方法は?
マイケルケイの答えに追加するには:
以下を使用してXMLを処理することから始める場合:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="address">
<xsl:copy>
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
結果をファイルに保存すると、スタイルシートを使用して結果のファイルを処理し、期待される結果を得ることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加