下面是我的输入XML。
<ServiceIncident xmlns="http://b2b.ibm.com/schema/IS_B2B_CDM/R2_2">
<ProviderID>INC0011731</ProviderID>
<ProviderPriority>4</ProviderPriority>
<WorkflowStatus>NEW</WorkflowStatus>
<ServiceProvider1>
<Person Role="AffectedUser">
<ContactID>ITELLA_BRIDGE_USER</ContactID>
<FullName>Chad Whaley</FullName>
</Person>
</ServiceProvider1>
以下是我的XSL
<xsl:template match="r2:Person/@Role">
<xsl:attribute name="Role">Owner</xsl:attribute>
</xsl:template>
<xsl:template match="r2:Person/@Role">
<xsl:attribute name="Role">ReportedBy</xsl:attribute>
</xsl:template>
我的问题是我希望输出中的这两个字段替换输入中的旧字段。我能够在输出中获得一个值,但我没有得到其他值。
答案 0 :(得分:0)
我把一个空格作为属性之间的分隔符:
<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" exclude-result-prefixes="r2">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="r2:Person">
<xsl:copy>
<xsl:attribute name="Role">Owner ReportedBy</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>