结束标记中的空格
本文关键字:空格 结束 | 更新日期: 2023-09-27 18:03:39
我在c#中加载xml有一个问题。
XmlDocument doc = new XmlDocument();
string xmlText = File.ReadAllText("D:''webservice_aspnet''novo2.xml");
doc.PreserveWhitespace = true;
doc.LoadXml(xmlText);
上面执行加载文件。
原始文件:<?xml version="1.0" encoding="UTF-8"?>
<teste>
<abc xmlns="xxx"/>
</teste>
当我尝试doc。InnerXml,并创建一个xml文件,它看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<teste>
<abc xmlns="xxx" />
</teste>
看到这里添加了一个空格:
<abc xmlns="xxx" />
在标签的末尾。我知道这不会改变文件的结构,但是我有一个验证算法的文件,我不能改变任何东西或添加一个空间。
我不想替换来修复这个问题,因为它们太大了,文件可能会丢失信息。
谁知道我如何生成相同的文件?
如果您使用的解析器(可能是自制的解析器)不能处理所有合法的XML语法,那么您就是在积累麻烦,并且您的名字将被继承您代码的任何人诅咒。别这么做。
不要试图修改XML生成代码来生成解析器可以处理的XML子集。修复你的解析器
修复解析器的一种方法可能是添加XML规范化步骤作为它要做的第一件事;规范化生成一个定义良好的XML子集,它可能(如果幸运的话)对应于您自制的解析器所理解的子集。
也许你可以尝试doc.Load(file)而不是doc.LoadXml(file)。
请尝试使用Replace
函数:
string YourXML=SomexmlContent;
string result=YourXML.Replace(" />","/>");
希望这对你有帮助!