1

xmlファイルを編集するためにxmlwriterを使用していますが、他のxmlファイルとの将来の比較のために特定の形式を維持するためにxmlwriterが必要です。

私は次のコードを使用して空の要素を記述しています。

w.WriteStartElement("description");
w.WriteEndElement();

xmlファイルの結果は次のとおりです。

<description />

通常は問題ありませんが、次のように表示する必要があります。

<description/>

「説明」の後にスペース文字なし。

それを行う方法はありますか?

4

3 に答える 3

3

XMLはテキストではありません。ルールは異なります。一般に、テキスト比較を使用してXMLファイルを比較することはできません。あなたが与えた2つの例は同じXMLですが、あなたが指摘したように、それらは異なるテキストです。

比較するファイルを前処理して、すべての属性を同じ順序(おそらく1行に1つの属性)に配置するなどの処理を行うことで、これに取り組むことができます。要素を正規の順序に配置したり、同じ名前空間に同じプレフィックスを使用したりします。次に、テキスト比較ツールに空白などを無視するように指示する必要があります。

于 2011-10-11T14:51:31.080 に答える
2

これらのフォームは両方とも有効なXMLであり、使用しているシステムがXMLパーサーでない限り、両方のフォームを解析できる必要があります。

私は今自分のコンピューターを使用していませんが、これでうまくいくと思います。

Var myModifiedXmlString = w.ToString().Replace(" />", "/>");
于 2011-10-11T14:46:46.907 に答える
2

見てくださいXmlWriter.WriteRaw、例えば:

w.WriteRaw("<description/>");
于 2011-10-11T15:00:02.580 に答える