我试图了解XPath在我的情况下如何工作。我的问题很简单。我想将申请人的VATIdentificationNumber
输出到VATIdentificationNumber
元素。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var" exclude-result-prefixes="msxsl var s0" version="1.0" xmlns:ns0="http://customerNamespace" xmlns:s0="http://inputNamespace">
<xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
<xsl:template match="/">
<xsl:apply-templates select="/s0:CDM_VATRefundApplication" />
</xsl:template>
<xsl:template match="/s0:CDM_VATRefundApplication">
<ns0:VatRefund>
<GeneralData>
<LineCode>01</LineCode>
<VATIdentificationNumber>
<xsl:value-of select="Applicant/VATIdentificationNumber"></xsl:value-of>
</VATIdentificationNumber>
</GeneralData>
</ns0:VatRefund>
</xsl:template>
</xsl:stylesheet>
我的输入模式的结构如下:
据我了解,范围在XSLT中是如何工作的,由于模板与/
相匹配,所以我目前在根节点上。这样,我应该能够选择Applicant
元素,它是根节点的子级。测试代码时,我得到了VATIdentificationNumber
元素的输出,但是没有任何值。
在这种情况下使用的正确XPath是什么?我尝试添加名称空间,使用完整路径,但这也不起作用。