Я пытаюсь отсортировать vcproj в Microsoft Visual Studio, чтобы diff показывал что-то значимое после, например, удаление файла из проекта. Помимо сортировки, я хочу сохранить все без изменений, включая пробелы. Вход выглядит как
пространство <File
spacespace RelativePath="filename"
spacespace >
...
Фрагмент xslt ниже может добавить пробелы вокруг элементов, но я не могу понять, как обращаться с этими атрибутами, поэтому мой вывод выглядит как
пространство <File RelativePath="filename">
xslt я использую для процессора msxsl 4.0:
<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>