システムから取得した XML を、XSLT を使用する顧客に必要な新しい XML 形式に変換する小さなアプリケーションを作成しました。問題は、XML ノードの値を取得できないように見えることです。それらはすべて空です。
ここに私のXSLTファイルがあります:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<test>
<xsl:apply-templates select="SourceEndpoint" />
</test>
</xsl:template>
<xsl:template match="SourceEndpoint">
<InvoiceAmount>
<xsl:value-of select="." />
</InvoiceAmount>
</xsl:template>
</xsl:stylesheet>
私の元の XML には というノードがあるSourceEndpoint
ので、ここで何が間違っているのかわかりません。
私も試しました:<xsl:value-of select="Envelope/Header/SourceEndpoint" />
テンプレートの代わりに、同じ結果が得られました
編集
これが私の元の XML のスニペットです。
<Envelope xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/Message">
<Header>
<MessageId>{11EA62F5-543A-4483-B216-91E526AE2319}</MessageId>
<SourceEndpoint>Test</SourceEndpoint>
<DestinationEndpoint>TestInvoice</DestinationEndpoint>
</Header>
</Envelope>
Envelope
ファイル全体のルートです
変換された XML では、test は次のようになります。<test />