XSLT:复制属性时保留空格

时间:2011-04-30 18:10:31

标签: xslt vcproj

我正在尝试对Microsoft Visual Studio的vcproj进行排序,以便差异在显示后会显示一些有意义的内容。从项目中删除文件。除了排序,我想保持一切完整,包括空格。输入看起来像

空间 <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>

2 个答案:

答案 0 :(得分:1)

这些空格总是在XML中无关紧要,我相信没有选项可以通用方式控制任何XML / XSLT库的这种行为。

答案 1 :(得分:1)

XSLT适用于输入XML的树表示。原始XML的许多不相关的细节已经在这个树中被抽象出来 - 例如属性的顺序,属性之间无关紧要的空白,或者作为属性定界符的“和”之间的区别。我看不出任何可能的原因。想要编写一个将这些区别视为重要的程序。