<p>XSLT是将一种XML结构转换为另一种XML结构的完美工具。在</p>
<pre><code><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- copy the root element and handle its <car> children -->
<xsl:template match="/root">
<xsl:copy>
<xsl:apply-templates select="car" />
<xsl:copy>
</xsl:template>
<!-- car elements become a container for their properties -->
<xsl:template match="car">
<car name="{normalize-space()}">
<!-- ** see 1) -->
<xsl:copy-of select="following-sibling::color[1]" />
<xsl:copy-of select="following-sibling::speed[1]" />
</car>
</xsl:template>
</xsl:stylesheet>
</code></pre>
<p><strong>1)</strong>要使这一点起作用,XML必须为每个<code><car></code>使用<code><color></code>和<code><speed></code>。如果不能保证,或者属性的数量和种类通常是可变的,请将这两行替换为copy语句的泛型形式:</p>
^{pr2}$
<p>应用于您的XML(我暗示了一个名为<code><root></code>)的文档元素,这就是结果</p>
<pre><code><root>
<car name="Ferrari">
<color>red</color>
<speed>300</speed>
</car>
<car name="Porsche">
<color>black</color>
<speed>310</speed>
</car>
</root>
</code></pre>
<p>在Python中将XSLT应用于XML的示例代码应该很容易找到,所以我在这里省略了。它只需要4到5行Python代码。在</p>