如何使用xslt将子节点元素值移动到另一个子节点值。我需要用来自不同子节点的实际城市值替换虚拟城市。
在下面的例子中,我需要将城市从Address子节点移动到Name子节点。
源XML:
<?xml version="1.0" encoding="UTF-8"?>
<M:Top_Node xmlns:M="urn:com">
<M:First_Node>
<M:Employee>
<M:Name>
<M:Employee_ID>001</M:Employee_ID>
<M:Name>sam</M:Name>
<M:City>Dummy_City_CA</M:City>
</M:Name>
<M:Address>
<M:City>Actual_City_CA</M:City>
<M:State>CA</M:State>
</M:Address>
</M:Employee>
<M:Employee>
<M:Name>
<M:Employee_ID>002</M:Employee_ID>
<M:Name>Van</M:Name>
<M:City>Dummy_City_NY</M:City>
</M:Name>
<M:Address>
<M:City>Actual_City_NY</M:City>
<M:State>NY</M:State>
</M:Address>
</M:Employee>
</M:First_Node>
预期输出:
<?xml version="1.0" encoding="UTF-8"?>
<M:Top_Node xmlns:M="urn:com">
<M:First_Node>
<M:Employee>
<M:Name>
<M:Employee_ID>001</M:Employee_ID>
<M:Name>sam</M:Name>
<M:City>Actual_City_CA</M:City>
</M:Name>
<M:Address>
**<M:City>Actual_City_CA</M:City>**
<M:State>CA</M:State>
</M:Address>
</M:Employee>
<M:Employee>
<M:Name>
<M:Employee_ID>002</M:Employee_ID>
<M:Name>Van</M:Name>
**<M:City>Actual_City_NY</M:City>**
</M:Name>
<M:Address>
<M:City>Actual_City_NY</M:City>
<M:State>NY</M:State>
</M:Address>
</M:Employee>
</M:First_Node>
答案 0 :(得分:1)
为该元素编写模板
<xsl:template match="M:Employee/M:Name/M:City">
<xsl:copy-of select="../../M:Address/M:City"/>
</xsl:template>
当然加上身份转换模板。