2011-04-30 67 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

相關問題