0

XML ドキュメントの要素cの終了タグを削除するにはどうすればよいですか?

変換された XML はスキーマ検証を通過し、空白が含まれているため拒否されます。C#、.NET 1.1 を使用しています (レガシー アプリケーションを更新しています :-( )。

: XML ドキュメントを変換するために文字列操作に頼ってはいけません。

現時点の:

<main>
  <a>
    <b />
    <c>
    </c>
  </a>
</main>

最後の:

<main>
  <a>
    <b />
    <c />
  </a>
</main>

更新 1 : 詳細については、最終的な XML ドキュメントがファイルとして保存され、別のプロセスがファイルを検証します。保存された XML がフォーマットされているようです。

これが本当かどうかはわかりません:

<a></a> == <a />
4

2 に答える 2

5

これを試して:

XmlDocument xml = new XmlDocument();
xml.LoadXml(@"
 <main>
  <a>
    <b />
    <c>
    </c>
  </a>
</main>");

foreach(XmlElement element in xml.SelectNodes("//*[. = '' and count(*) = 0]"))
{
    element.IsEmpty = true;
}

Console.WriteLine(xml.InnerXml);
Console.ReadLine();
于 2010-01-21T09:06:30.710 に答える
3

たぶん、InnerTextをstring.Emptyではなくnullに設定すると役に立ちますか?

更新します。または、XmlElement.IsEmptyを設定するだけです)

于 2010-01-21T08:54:13.657 に答える