c# - 在xml属性之间保留新行C#
问题描述
我有一个由用户输入的 XML,我必须向它添加一些属性,然后将更改的 XML 作为字符串返回。
现在的问题是,它忽略了属性之间的退格。这是我正在谈论的一个例子:
我得到的 XML:
<note day="12"
month="11"
year="2002"
to="Tove"
from="Jani"
heading="Reminder">
</note>
我要返回的 XML:
<note day="12"
month="11"
year="2002"
to="Tove"
from="Jani"
heading="Reminder"
body="Don't forget me this weekend!">
</note>
实际返回的 XML:
<note day="12" month="11" year="2002" to="Tove" from="Jani" heading="Reminder" body="Don't forget me this weekend!">
</note>
下面是如何将 xmlContent(用户定义的 XML 作为字符串)加载到 XmlDocument 类中的代码。
XmlDocument xmlDocument= new XmlDocument();
xmlDocument.PreserveWhitespace = true;
xmlDocument.LoadXml(xmlContent);
但是 XmlDocument.PreserveWhitespace 在用新行分隔属性时似乎不起作用。
为了从 XmlDocument 创建字符串,我使用以下代码:
using (var sw = new StringWriter())
{
using (var xw = XmlWriter.Create(sw, settings))
{
xw.WriteString(xmlDocument.InnerXml);
}
string stringToOutput = sw.ToString();
}
解决方案
尝试查看 settings.IndentChars。
var settings = new XmlWriterSettings()
{
IndentChars = "\r\n"
}
推荐阅读
- c - 在C中对字符串数组进行冒泡排序
- r - 如何在忽略重复字符串第一次出现的索引的情况下返回字符向量中某些重复字符串的索引?
- c# - 上传文件时,我将什么类型的变量传递给 API 控制器?
- angular - 如何动态更改 ngrx 表单中的表单 ID?
- c++ - if (!ifstream) 在 C++ 中是什么意思?
- javascript - 如何解决 XMLHttpRequest.send 处的 ERROR NetworkError (...dist\fxcore\server\main.js:200768:19)
- git - 由于网络缓慢,将分支拉成块(例如 100 x 100)
- python - 如何在 Python 文档字符串中的 Sphinx 文档中显示图像?
- google-sheets - 如何删除空单元格并在 Google 表格中上移?
- javascript - Node.js REST API 错误