我有这样的XML,如下所示:
<xs:VehicleData>
<xdd:myData>1234</xdd:myData>
<xdd:SrcUsrAge>34</xdd:SrcUsrAge>
<xdd:array>
....
.......
.....
<xdd:SrcAge></xdd:SrcAge>
</xdd:array>
.....
</xs:vehicleData>
我尝试使用XSLT将年龄34复制到SrcAge标记中。我无法做到。新手到XSLT。你能帮我吗?真的很感激。这不是作业。
非常感谢。
答案 0 :(得分:1)
不幸的是,您需要复制所有现有节点,使用XSLT只向该XML添加一个节点,这里是您提出的示例XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://xs.example.com/"
xmlns:xdd="http://xdd.example.com/" version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="/">
<xsl:element name="xs:vehicleData">
<xsl:variable name="srcUsrAge" select="//xdd:SrcUsrAge/text()"/>
<xsl:element name="xdd:myData">
<xsl:value-of select="//xdd:myData/text()"/>
</xsl:element>
<xsl:element name="xdd:SrcUsrAge">
<xsl:value-of select="$srcUsrAge"/>
</xsl:element>
<xsl:element name="xdd:array">
<xsl:element name="xdd:SrcAge">
<xsl:value-of select="$srcUsrAge"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
我必须声明测试命名空间以使用XML:
xmlns:xs="http://xs.example.com/"
xmlns:xdd="http://xdd.example.com/"
随时改变它们。