我有一个xml,其中包含大量文字,如下所示:
<EmployeeId>&EmpId;</EmployeeId>
<Department>&Dept;</Department>
我需要删除&amp;字符,以便它是适当的xml来验证它对xsd。怎么能实现这个目标?
答案 0 :(得分:5)
您也可以使用
xml = "<myxmlnode>"+ SecurityElement.Escape(string) +"</myxmlnode>"
创建节点时。
这将处理所有无效字符并逃避它们。
答案 1 :(得分:3)
我不建议删除数据只是为了“解决”问题。将&
字符添加到Xml数据的正确方法是&
。您可以使用框架中的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("&", "&").Replace("&", "&"));
“双重替换”是为了避免创建“&amp; amp; amp;”。
答案 3 :(得分:0)
如果在XML中使用某些字符,则需要对其进行正确编码。 &符号&amp;是其中之一。
看看这里,如果这些字符是XML中包含的数据的一部分,则需要对这些字符进行编码。
答案 4 :(得分:0)
我建议看一下XMLConvert课程。您可以使用它来编码和解码XML以使其安全。这也将处理XML Spec.中定义的非法字符。如前所述,删除&amp; amp等文本实际上会更改下划线数据,因此您应该根据需要进行编码和解码。