结束标记中的空格

时间:2014-05-15 02:46:49

标签: c# xml

我在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" />

在标签的末尾。我知道这不会改变文件的结构,但是我有一个验证算法的文件,我不能改变任何东西或添加空格。

我不想替换来解决这个问题,因为他们是巨人,文件可能会丢失信息。

任何人都知道如何生成相同的文件?

3 个答案:

答案 0 :(得分:2)

如果您使用解析器(可能是家庭解析器)阅读XML而不是处理所有合法的XML语法,那么您就会遇到麻烦,并且任何继承您代码的人都会诅咒您的名字。不要这样做。

请勿尝试修复XML生成代码,以生成解析器可以处理的XML子集。修复你的解析器。

修复解析器的一种方法可能是首先添加XML规范化步骤;规范化生成一个定义良好的XML子集,可能(如果你很幸运)对应于你的家庭酿造解析器理解的子集。

答案 1 :(得分:0)

也许您可以尝试doc.Load(文件)而不是doc.LoadXml(文件)。

答案 2 :(得分:0)

请尝试使用Replace功能:

string YourXML=SomexmlContent;
string result=YourXML.Replace(" />","/>");

希望这有帮助!