2

プロジェクトからファイルを削除した後など、差分が意味のあるものを表示するように、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>

4

2 に答える 2

1

XSLTは、入力XMLのツリー表現で機能します。元のXMLの無関係な詳細の多くは、このツリーで抽象化されています。たとえば、属性の順序、属性間の重要でない空白、属性区切り文字としての「と」の区別などです。考えられる理由はわかりません。これらの違いを重要なものとして扱うプログラムを書きたい。

于 2011-04-30T22:12:51.143 に答える
1

これらのスペースはXML では常に重要ではなく、XML/XSLT ライブラリの一般的な方法でこの動作を制御するオプションはないと思います。

于 2011-04-30T18:19:08.007 に答える