结束标记中的空格

本文关键字:空格 结束 | 更新日期: 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(" />","/>");

希望这对你有帮助!