appy-templates中的XML命名空间

时间:2014-02-08 11:45:20

标签: xslt xpath xml-namespaces

下面是输入XML。

     <ServiceIncident xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2">
         <Problem>
          <Ticket>
            <UrgencyCode>3</UrgencyCode>
            <ImpactCode>2</ImpactCode>
          </Ticket>
        </Problem>
     </ServiceIncident>

我使用下面的xsl.My问题是我需要在每个x路径表达式中使用前缀r2和根元素serviceincident所以我应用模板匹配,以便没有重复这个标记,但如果没有输出,如果我应用模板匹配。

<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="/">
        <xsl:apply-templates select="r2:ServiceIncident"/>
    </xsl:template>

    <xsl:template match="r2:ServiceIncident">
        <custom2>
            <xsl:value-of select="r2:ServiceIncident/r2:Problem/r2:Ticket/r2:ImpactCode"/>
        </custom2>
    </xsl:template>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:3)

在模板内部,您需要使用相对于匹配节点的路径,以便

   <xsl:template match="r2:ServiceIncident">
         <custom2>
 <xsl:value-of select="r2:Problem/r2:Ticket/r2:ImpactCode"/>
        </custom2>
        </xsl:template>

可能就是你想要的。