1
假设你想这个XML变换XML的元素有几个属性和使用一个属性来创建新的元素
<?xml version="1.0" encoding="UTF-8"?>
<package id="album">
<concept id="tracknumber" value="18"></concept>
<concept id="songtitle" value="Multi Love"></concept>
<concept id="band" value="Unknown Mortal Orchestra"></concept>
</package>
转换到这个XML:
<package>
<tracknumber>18</tracknumber>
<songtitle>Multi Love</songtitle>
<band>Unknown Mortal Orchestra</band>
</package>
这是出发点XSLT转换源XML:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="package[@id='album']">
<package>
<tracknumber>
<xsl:value-of select="concept[@id='tracknumber']" />
</tracknumber>
<songtitle>
<xsl:value-of select="concept[@id='songtitle']" />
</songtitle>
<band>
<xsl:value-of select="concept[@id='band']" />
</band>
</package>
</xsl:template>
</xsl:stylesheet>
看起来很难得到XML的“值”部分ttributes。
这是一个伟大的答案!我简化了这个例子,使其更易于理解。在现实生活中,结果有点棘手,有一些复杂的元素不遵循客户需求以外的特定逻辑。 – noitib
太棒了!我认为这是简化的。乐意效劳。 – Parfait