2011-04-30 31 views
2

我正在尝试对Microsoft Visual Studio的vcproj进行排序,以便diff之后会显示一些有意义的内容。从项目中删除文件。除了排序之外,我还想保留所有内容,包括空格。输入看起来像XSLT:在复制属性时保留空格

空间<File

spacespaceRelativePath="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:copy/>

</xsl:for-each>

回答

1

这些空间是总是微不足道的XML,我相信没有选择在任何一个通用的方法来控制这种行为XML/XSLT库。

1

XSLT处理输入XML的树形表示。很多原始XML的不相关细节已经被抽象出来了,例如属性的顺序,属性之间的无意义的空白,或者作为属性定界符的“和”之间的区别。我看不出任何可以想象的原因想写一个程序,将这些差异视为重要的。

+0

我会说,即使** XML解析器**不关心属性顺序或空间之间按照规格。 – 2011-05-01 02:30:10

相关问题