0
我必須使用XSLT從一個XML轉換爲另一個XML。我要帶屬性添加<resource>
標籤內兩個新節點<file href="new1.js">
和<file href="new2.js">
地方,以往任何時候都appears-XSLT:添加具有屬性的新節點
我的輸入文件:
<?xml version="1.0" encoding="UTF-8"?>
<manifest identifier="eXescorm_quiz4823c6301f3d3afc1c1f"
xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2"
xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<resources>
<resource identifier="RES22" type="webcontent" href="index.html">
<file href="index.html"/>
<file href="common.js"/>
</resource>
</resources>
</manifest>
所需的輸出:
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
identifier="eXeorm_sample4823c6301f29a89a4c1f"
xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2"
xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<resources>
<resource identifier="RES22" type="webcontent" href="index.html">
<file href="index.html"/>
<file href="common.js"/>
<file href="new1.js"/>
<file href="new2.js"/>
</resource>
</resources>
</manifest>
我XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.imsglobal.org/xsd/imscp_v1p1"
xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"
exclude-result-prefixes="xhtml">
<xsl:output method="html" indent="yes" encoding="UTF-8"/>
<xsl:strip-space elements="*" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:resource">
<file href="new1.js"/>
<file href="new2.js"/>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
但它不會添加新的文件節點。 謝謝!
非常感謝。它完美的作品! :) – RahulD 2012-08-10 02:27:43