我有一个由用户输入的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();
}
xmlDocument.Save(sw)
- 您不需要获取内部XML等。这不会解决问题,但在我看来,这是一种更好的方法。但是,XmlDocument.PreserveWhitespace
是关于保留元素内容中的空格,而不是属性之间的空格。我不确定是否有一种方法可以保留属性的精确布局 :( - Jon Skeet