下面是输入XML。
<ServiceIncident xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2">
<Ticket>
<UrgencyCode>3</UrgencyCode>
<ImpactCode>2</ImpactCode>
</Ticket>
</ServiceIncident>
在上面的输入XML中,如果在根元素中使用XMLNS(即ServiceIncident
),则元素位于http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2
命名空间中。
我的输出中没有得到任何值。如果我删除输入XML中的xmlns
名称空间声明,那么我可以在输出中获取值。
我需要在输入中使用xmlns
。如何在输出中获取值?
答案 0 :(得分:2)
您需要在XSLT中声明名称空间(带前缀),然后使用该前缀:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:r2="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<n>
<xsl:value-of select="r2:ServiceIncident/r2:Ticket/r2:UrgencyCode"/>
</n>
</xsl:template>
</xsl:stylesheet>
当您的样本运行上述XSLT时,结果为:
<n>2</n>