如何在C#中删除xml中的无效字符
本文关键字:无效 字符 xml 删除 | 更新日期: 2023-09-27 17:59:30
我有一个xml,它由很多文本组成,如下所示:
<EmployeeId>&EmpId;</EmployeeId>
<Department>&Dept;</Department>
我需要删除&字符,这样就可以使用合适的xml根据xsd对其进行验证。如何做到这一点?
您也可以使用
创建节点时使用xml = "<myxmlnode>"+ SecurityElement.Escape(string) +"</myxmlnode>"
。
这将处理所有无效字符并对其进行转义。
我不建议仅仅为了"修复"问题而删除数据。将&
字符添加到Xml数据的正确方法是&
。您可以使用XmlWriter
或框架中的其他类来创建Xml,并让它为您确定格式。
您可以执行以下操作之一:
string content = System.IO.File.ReadAllText("PATH");
System.IO.File.WriteAllText("PATH", content.Replace("&", String.Empty));
或
string content = System.IO.File.ReadAllText("PATH");
System.IO.File.WriteAllText("PATH", content.Replace("&", "&").Replace("&", "&"));
"双重替换"是为了避免创建"&;"。
如果在XML中使用某些字符,则需要对其进行正确编码。amp;是其中之一。
看看这里,如果这些字符是XML中包含的数据的一部分,则需要对它们进行编码。
http://support.microsoft.com/kb/316063
我建议看一下XMLConvert类。您可以使用它对XML进行编码和解码,以确保其安全。这也将处理XML规范中定义的非法字符;amp实际上会更改下划线数据,因此您应该根据需要进行编码和解码。