我正在尝试对 Microsoft Visual Studio 的 vcproj 进行排序,以便在从项目中删除文件后,差异会显示一些有意义的东西。除了排序之外,我还想保持一切完好无损,包括空格。输入看起来像
空间<File
空间空间RelativePath="filename"
空间空间>
...
下面的 xslt 片段可以在元素周围添加空格,但我不知道如何处理属性周围的空格,所以我的输出看起来像
空间<File RelativePath="filename">
我用于 msxsl 4.0 处理器的 xslt:
<xsl:for-each select="File">
<xsl:sort select="@RelativePath"/>
<xsl:value-of select="preceding-sibling::text()[1]"/>
<xsl:copy>
<xsl:for-each select="text()|@*">
<xsl:copy/>
</xsl:for-each>