如何删除xml“&”符号

时间:2012-05-18 15:24:40

标签: c# xml escaping xml-parsing

我将xml文件寄到数据集。如果xml数据包含“&”,则会收到错误或者一些特殊的char如何删除?

如何删除“&”从下面的标签?

XML

 < department departmentid=1 name="pen & Note" >

$

string departmentpath = HostingEnvironment.MapPath("~/App_Data/Department.xml"); DataSet departmentDS = new DataSet(); System.IO.FileStream dpReadXml = new System.IO.FileStream(departmentpath, System.IO.FileMode.Open); try { departmentDS.ReadXml(dpReadXml); } catch (Exception ex) { //logg }

3 个答案:

答案 0 :(得分:2)

您可以将其替换为&amp;

答案 1 :(得分:2)

XML的文化是创建XML的人负责提供符合规范的格式良好的XML;如果收件人弄错了,他们会拒绝收件人。因此,通过尝试修复错误的XML并将其转换为良好的XML,您就会反对这种情况。这就像在餐馆里吃不好的食物一样:你应该抱怨,而不是向下桌的人询问如何让它变得易于消化。

你提供的输入比“&”更加错误。根本不可能将它识别为XML。你永远不会把这个混乱变成一个强大的数据流。

答案 2 :(得分:1)

代码似乎是C#。但是请添加正确的语言标签!

有五个特殊字符经常需要在XML文档中转义。你可以阅读this SO问题。

有两种可能性:

  • 让您的DataSet::ReadXML方法处理这些特殊字符 [推荐]
  • 更改输入文件中的所有特殊字符 [不推荐]

不建议使用第二种方法,因为您可能无法始终控制传入的数据(如果您愿意,可能会浪费时间预处理它们)。为了使ReadXML能够正确解析特殊字符,您还需要在输入XML中定义正确的编码。