如何从C#中的xml中删除无效字符

时间:2011-06-20 09:51:47

标签: c# .net xml

我有一个xml,其中包含大量文字,如下所示:

<EmployeeId>&EmpId;</EmployeeId>
<Department>&Dept;</Department>

我需要删除&amp;字符,以便它是适当的xml来验证它对xsd。怎么能实现这个目标?

5 个答案:

答案 0 :(得分:5)

您也可以使用

xml = "<myxmlnode>"+ SecurityElement.Escape(string) +"</myxmlnode>"创建节点时。

这将处理所有无效字符并逃避它们。

答案 1 :(得分:3)

我不建议删除数据只是为了“解决”问题。将&字符添加到Xml数据的正确方法是&amp;。您可以使用框架中的XmlWriter或其他类来创建Xml,并让它为您找出格式。

答案 2 :(得分:0)

您可以执行以下操作之一:

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("&amp;", "&").Replace("&", "&amp;"));

“双重替换”是为了避免创建“&amp; amp; amp;”。

答案 3 :(得分:0)

如果在XML中使用某些字符,则需要对其进行正确编码。 &符号&amp;是其中之一。

看看这里,如果这些字符是XML中包含的数据的一部分,则需要对这些字符进行编码。

http://support.microsoft.com/kb/316063

答案 4 :(得分:0)

我建议看一下XMLConvert课程。您可以使用它来编码和解码XML以使其安全。这也将处理XML Spec.中定义的非法字符。如前所述,删除&amp; amp等文本实际上会更改下划线数据,因此您应该根据需要进行编码和解码。