.net 配置文件 分析 EntityName 时出错

今天用C#读写XML文档,总出现下面的错误:

分析 EntityName 时出错。行1,位置9。

出错地方的源程序为:

//......  
pathEle.InnerXml = reducedStr(videoPath, RootDirDirecotry + "\\");  
videoInfoEle.AppendChild(pathEle);  
XmlElement urlEle = combineXml.CreateElement("VideoPageUrl");  
urlEle.InnerXml = VideoUrl;  
videoInfoEle.AppendChild(urlEle);  

出错就出在

urlEle.InnerXml = VideoUrl  

这一句,其中VideoUrl是一个URL地址。

经过搜索发现,是因为此地址中包含了一个“&”符号:

http://v.youku.com/v_show/id_XODIxNTIwODQw.html?f=23050445&from=y1.3-paike-grid-4071-10195.90404-90171.5-1

解决方法为:

 

pathEle.InnerXml = reducedStr(videoPath, RootDirDirecotry + "\\");  
videoInfoEle.AppendChild(pathEle);  
XmlElement urlEle = combineXml.CreateElement("VideoPageUrl");  
string tmpVideoUrl = videoUrl;  
if (tmpVideoUrl.Contains("&") || tmpVideoUrl.Contains("<") || tmpVideoUrl.Contains(">") || tmpVideoUrl.Contains("\"") || tmpVideoUrl.Contains("\'"))  
   {  
      tmpVideoUrl = tmpVideoUrl.Replace("&","&");  
      tmpVideoUrl = tmpVideoUrl.Replace("<","<");  
      tmpVideoUrl = tmpVideoUrl.Replace(">",">");  
      tmpVideoUrl = tmpVideoUrl.Replace("\"",""");  
      tmpVideoUrl = tmpVideoUrl.Replace("\'","'");  
   }  
urlEle.InnerXml = tmpVideoUrl;  
videoInfoEle.AppendChild(urlEle);</span></span>  

即将"&"替换为"&amp;"即可。

**********************************************************************

原因分析:

在涉及到xml编与xslt程的过程中,忽略了xml中特殊符号表示的方法。

下表列出了这些特殊字符并描述了它们的含义。有关更多信息,请参见 XML 1.0 规范 中的 XML 1.0 规范。

 

特殊字符 特殊含义     实体编码

>             开始标记       &gt;

<             结束标记       &lt;

"              引号             &quot;

'               撇号             &apos;

&            "&"符号         &amp;

posted on 2016-04-07 11:22  风雨潜行  阅读(720)  评论(0编辑  收藏  举报

导航