我有一个XML文档,想要删除其中的空格和换行符。我该如何使用C#获取修改后的XML文档。
将preserveWhitespace标志设置为false:
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = false;
doc.Load("foo.xml");
// doc.InnerXml contains no spaces or returns
去除标签之间的空格:
# Regex regex = new Regex(@">\s*<");
# string cleanedXml = regex.Replace(dirtyXml, "><");
这里有源代码和其他有用信息,点击查看
我只需使用更完整的正则表达式就解决了这个问题:
var regex = new Regex(@"[\s]+(?![^><]*(?:>|<\/))");
var cleanedXml = regex.Replace(xml, "");
这个正则表达式将删除所有封闭标签之间的空格。
输入示例:
<root>
<result success="1"/>
<userID>12345</userID>
<classID> 56543 </classID>
</root>
输入的输出结果:
<root><result success="1"/><userID>12345</userID><classID> 56543 </classID>
</root>
这个正则表达式的更完整解释可以在这篇文章中找到:https://dev59.com/8IPba4cB1Zd3GeqPqEUB#25771445
xml:space="preserve"
属性,则它将无法工作(当然是出于设计目的),因此在加载之前必须删除这些属性。 - Simon Mourier