我奮力總結我的周圍XSLT頭......試圖轉換下面的XML:附加屬性的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標記值並將其放入員工標籤的屬性中)。
<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>
任何想法?
行 - 既感謝這麼多...多了一個跟進的問題(對不起不包括在OP中)。我試圖使用這種方法來將xmlns,xmlns:xsi和xsi:schemaLocation屬性添加到員工標籤 - 但是出錯了。這些特殊屬性還是什麼? – 2012-02-13 18:09:18
@ErikSorensen:'xmlns ='不是屬性 - 這是一個名稱空間聲明。如果namespace-uri是靜態已知的,那麼創建一個名稱空間聲明沒有任何問題 - 如果不是在XSLT 1.0中,需要使用涉及xxx:node-set()擴展的技巧來創建一個動態命名空間。 – 2012-02-13 18:41:07
@ErikSorensen:很高興我的回答對你有用。爲什麼不考慮接受它? – 2012-02-13 18:42:22