Сохранить XML без форматирования - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно сгенерировать xml, но без переходов через строки, способ генерации с отступом, как сохранить без перехода через строку?

 document.LoadXml(soapEnvelope);
    document.Save(@"E:\nota.xml");

Я попробовал этот код ниже:

XDocument document = XDocument.Load("arquivo.xml");
document.Save("arquivo2.xml", SaveOptions.DisableFormatting);

Однако опция SaveOptions не отображается, я использую ASP.NET CORE.

Таким образом, данные выглядят так:

    <Rps>
      <IdentificacaoRps>
         <Numero>1</Numero>
          <Serie>999</Serie>
          <Tipo>1</Tipo>
      </IdentificacaoRps>
     <DataEmissao>2018-11-27</DataEmissao>
    <Status>1</Status>
  </Rps>

И мне нужноих оставить так.

 <Rps><IdentificacaoRps><Numero>1</Numero><Serie>999</Serie><Tipo>1</Tipo</IdentificacaoRps><DataEmissao>2018-11-27</DataEmissao<Status>1</Status></Rps>

Как решить эту проблему, есть ли способ?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Чтобы эффективно удалить пробел, здесь я создаю новый XmlDocument с PreserveWhiteSpace = false.Как только вы загрузите документ из файла, вы сможете получить доступ к свободному XML-пробелу из doc.InnerXml, а затем использовать его для любых целей, но здесь я придерживаюсь вопроса и записываю его в файл, и правильноизбавиться от писателя.

using (var writer = System.IO.File.CreateText("C:\\b.xml"))
{
    var doc = new XmlDocument {PreserveWhitespace = false};
    doc.Load("C:\\a.xml");
    writer.WriteLine(doc.InnerXml);
    writer.Flush();
}
0 голосов
/ 27 ноября 2018

Попробуйте, если это поможет -

XDocument document = XDocument.Load("arquivo.xml");

XmlWriterSettings xmlSettings = new XmlWriterSettings();
xmlSettings.Indent = false;
xmlSettings.NewLineChars = String.Empty;
using (XmlWriter xwWriter = XmlWriter.Create(@"c:\YourFileName.xml", xmlSettings))
document.Save(xwWriter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...