1

我正在将 xml 文件解析到数据集。如果 xml 数据包含“&”或一些特殊字符,我会收到错误如何删除它?

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

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 }
4

3 回答 3

2

您可以将其替换为&amp;

于 2012-05-18T15:25:46.910 回答
2

XML 的文化是创建 XML 的人负责交付符合规范的格式良好的 XML;如果收件人弄错了,他们应该拒绝它。因此,通过尝试修复不良 XML 并将其转变为良好的 XML,您将违反规定。这就像在餐馆里吃到劣质食物:你应该抱怨,而不是问邻桌的人如何让它变得容易消化。

您提供的输入比与号有更多的错误。它根本无法识别为 XML。您永远不会将这种混乱变成强大的数据流。

于 2012-05-18T17:13:52.240 回答
1

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

在 XML 文档中通常需要转义五个特殊字符。你可以阅读这个SO question。

有两种可能:

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

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

于 2012-05-18T15:34:42.420 回答