C#里 xml.Load();报错问题

C#里XmlDocumentxml=newXmlDocument();xml.Load(Productxmlpath);报错“分析EntityName时出错。第4行,位置... C#里
XmlDocument xml = new XmlDocument();
xml.Load(Productxmlpath);
报错“分析 EntityName 时出错。 第 4 行,位置 22。”
一下是XML文件的部分内容
<?xml version="1.0" encoding="Big5"?>
<ProductInfo>
<product>
<ItemNumber >FM4779 & 12</ItemNumber >
<ItemDesc >SPS 1550 HEMODIALYSIS MACHINE 220V</ItemDesc >
</product>
</ProductInfo>

问题出在“&”符号上,删掉“&”以后可以正常执行。
数据要求必须有“&”,这怎么处理啊。
展开
 我来答
xingyunbuzui
推荐于2018-03-26 · TA获得超过1160个赞
知道小有建树答主
回答量:346
采纳率:100%
帮助的人:387万
展开全部
这个是不符合标准的XML文件。(可以说是错误的XML文件)

&是XML中当以字符出现是必须被转义的字符。

这里有两种解决方法:
1 xml文件中用 & amp; 代替&。
XML里这样必须转义的特殊字符还有:
& --- & amp ;
< --- & lt ;
> --- & gt ;
' --- & apos ;
" --- & quot ;
注意:上面特殊字符& amp; 中间不能有空格,百度会自动按照特殊字符替换掉。所以留了空格。

2 <ItemNumber >FM4779 & 12</ItemNumber >
加上数据标识段:
<ItemNumber ><![CDATA[FM4779 & 12]]></ItemNumber >
用<![CDATA[ ]]>括起来后,里面的内容就被XML认为是字符串,不做任何词法判断。
youbl
2012-09-11 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1662万
展开全部
xml.Load(Productxmlpath.Replace("&", "&"));
追问
大侠。改完会有依然不可以哎。还是报同样的错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
重典技术闲话
2012-09-11 · TA获得超过2173个赞
知道大有可为答主
回答量:2593
采纳率:0%
帮助的人:1149万
展开全部
用 "& amp;" 代替&
& amp; 去掉中间空格
追问
这里的“&”是不能改变的,只能是“&”.
有别的方法吗?
追答
& amp; 就是&的转义

你读出来 他就变成&了,你存进去如果只是& 那么其它它不是&
就和字符串里""你存"不是"要\"才行是一个道理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式