Разметка XML-документа при использовании класса XmlDocument - C#

Узнай цену своей работы

Формулировка задачи:

Имею на входе такой xml (фрагмент, намеренно не форматирую как XML, чтобы здесь автопереносился как плайн текст): <?xml version="1.0" encoding="utf-8"?><xliff xmlns:sdl="http://sdl.com/FileTypes/SdlXliff/1.0" version="1.2" sdl:version="1.0" xmlns="urn:oasis:names:tc:xliff:document:1.2"><doc-info xmlns="http://sdl.com/FileTypes/SdlXliff/1.0"><rep-defs><rep-def id="f78a46e2-3275-49d6-bccc-e34aec848c05-26"><entry tu="0c066fa8-4513-4840-8f41-a077b65a3690" seg="31" /><entry tu="f78a46e2-3275-49d6-bccc-e34aec848c05" seg="26" /></rep-def><rep-def id="21f5c042-50f4-4f35-a840-d6b6fbe9056b-50"><entry tu="85f942b8-162e-4c9e-a303-edafca0604ec" seg="52" /><entry tu="21f5c042-50f4-4f35-a840-d6b6fbe9056b" seg="50" /></rep-def></rep-defs></doc-info>... итспользуя методы класса XmlDocument, просто читаю и сохраняю документ
XmlDocument xdoc = new XmlDocument();
xdoc.Load ("C:\Temp\1.sdlxliff");
xdoc.Save ("C:\Temp\2.sdlxliff");
Получаю в выходном файле "красивую" разметку
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns:sdl="http://sdl.com/FileTypes/SdlXliff/1.0" version="1.2" sdl:version="1.0" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <doc-info xmlns="http://sdl.com/FileTypes/SdlXliff/1.0">
    <rep-defs>
      <rep-def id="f78a46e2-3275-49d6-bccc-e34aec848c05-26">
        <entry tu="0c066fa8-4513-4840-8f41-a077b65a3690" seg="31" />
        <entry tu="f78a46e2-3275-49d6-bccc-e34aec848c05" seg="26" />
      </rep-def>
      <rep-def id="21f5c042-50f4-4f35-a840-d6b6fbe9056b-50">
        <entry tu="85f942b8-162e-4c9e-a303-edafca0604ec" seg="52" />
        <entry tu="21f5c042-50f4-4f35-a840-d6b6fbe9056b" seg="50" />
      </rep-def>
    </rep-defs>
  </doc-info>
...
которая уже неправильно интерпретируется родным приложением. Просто линеаризация не помогает, так как не все должно линеаризовываться. Как избавиться от бонуса "красивой разметки"?

Решение задачи: «Разметка XML-документа при использовании класса XmlDocument»

textual
Листинг программы
XmlDocument doc = new XmlDocument();
 
XmlTextWriter wr = new XmlTextWriter(fileName, Encoding.UTF8);
wr.Formatting = Formatting.None; // here's the trick !
 
doc.Save(wr);
 
wr.Close();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы