Как удалить закрывающий тег XmlDocument в C #, .NET 1.1? - PullRequest
0 голосов
/ 21 января 2010

Как удалить закрывающий тег элемента c в документе XML?

Преобразованный XML пройдет проверку схемы и будет отклонен, поскольку внутри него есть пробелы. Я использую C #, .NET 1.1 (я обновляю устаревшее приложение :-().

Примечание : я не должен прибегать к манипуляции со строками для преобразования XML-документа.

Ток:

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

Final:

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

Обновление 1 : для получения дополнительной информации окончательный документ XML сохраняется в виде файла, а затем другой процесс проверяет файл. Похоже, что сохраненный XML отформатирован.

Я не уверен, правда ли это:

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

Ответы [ 2 ]

5 голосов
/ 21 января 2010

Попробуйте это:

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();
2 голосов
/ 21 января 2010

Может быть, установив InnerText в ноль вместо строки. Пусто поможет?

Обновление . Или просто установите XmlElement.IsEmpty)

...