我创建了一个小应用程序,用于将系统中的 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 />