我在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" />
在标签的末尾。我知道这不会改变文件的结构,但是我有一个验证算法的文件,我不能改变任何东西或添加空格。
我不想替换来解决这个问题,因为他们是巨人,文件可能会丢失信息。
任何人都知道如何生成相同的文件?
答案 0 :(得分:2)
如果您使用解析器(可能是家庭解析器)阅读XML而不是处理所有合法的XML语法,那么您就会遇到麻烦,并且任何继承您代码的人都会诅咒您的名字。不要这样做。
请勿尝试修复XML生成代码,以生成解析器可以处理的XML子集。修复你的解析器。
修复解析器的一种方法可能是首先添加XML规范化步骤;规范化生成一个定义良好的XML子集,可能(如果你很幸运)对应于你的家庭酿造解析器理解的子集。
答案 1 :(得分:0)
也许您可以尝试doc.Load(文件)而不是doc.LoadXml(文件)。
答案 2 :(得分:0)
请尝试使用Replace
功能:
string YourXML=SomexmlContent;
string result=YourXML.Replace(" />","/>");
希望这有帮助!