我很难理解xslt...试图转换以下xml:
<employees>
<employee>
<employeeNumber>1234</employeeNumber>
<startdate>01/02/2003</startdate>
<activeFlag>true</activeFlag>
<firstname>Erik</firstname>
<address>
<addressline1>123 Main</addressline1>
<zip>07016</zip>
<state>New Jersey</state>
<city>My City</city>
</address>
</employee>
</employees>
将此内容转换为以下格式(即将activeFlag标签值提取出来,放入employee标签的属性中):
将activeFlag标签值提取出来,放入employee标签的属性中。
<employees>
<employee active="true">
<employeeNumber>1234</employeeNumber>
<startdate>01/02/2003</startdate>
<firstname>Erik</firstname>
<address>
<addressline1>123 Main</addressline1>
<zip>07016</zip>
<state>New Jersey</state>
<city>My City</city>
</address>
</employee>
</employees>
我尝试了以下的XSLT,但它什么也没做:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="employees/employee">
<employee active="{activeFlag}"/>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
有什么想法吗?
xmlns=
不是一个属性,而是一个命名空间声明。如果命名空间URI是静态已知的,则创建命名空间声明没有任何问题。如果在XSLT 1.0中不是这样,那么需要使用涉及xxx:node-set()扩展的技巧来创建动态命名空间。 - Dimitre Novatchev