System.Xml.XmlException: “=”是意外的标记。标记应为“;”
使用.NET XmlDocument对象LoadXml(string xml)行为从指定字符串加载XML过程中报了一个错:
“=”是意外的标记。标记应为“;”。 第 1 行,位置 567。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Xml.XmlException: “=”是意外的标记。标记应为“;”。 第 1 行,位置 567。
源错误:
行 60: else if (menuType == "myc")
行 61: {
行 62: doc.LoadXml(ReturnTree(5));
行 63: }
|
在网上查询到原因是.NET在解析XML文档时发现XML文档中有特殊字符,如果是&特殊字符,则替换成&即可,如果是其他特殊字符,则应有其他对应替换形式,这个百度即可
***************************************************************************************************************************
参考资源地址:http://www.hierror.com/csharp/201397354.shtml
症状:
.net解析xml的时候引发异常:“=”是意外的标记。标记应为“;”。 第 7 行,位置 80。
1 <?xml version="1.0" encoding="utf-8" ?> 2 <task> 3 <item> 4 5 <id>1</id> 6 <taskUrl>http://xiaohua.zol.com.cn/detail12/11396.html</taskUrl> 7 <listUrlRegular>http://xiaohua.zol.com.cn/list.php?z_subcate_id=0&keyword=&order=1&page={page}</listUrlRegular> 8 <startAtPage>1</startAtPage> 9 <endAtPage>168</endAtPage> 10 <listRegexExpressionPath>D:\ASPX\FJSpider\FJSpider.TaskRegularLibrary\zol\ListRegular.xml<stRegexExpressionPath> 11 <contentRegexExpressionPath>D:\ASPX\FJSpider\FJSpider.TaskRegularLibrary\zol\ContentRegular.xml</contentRegexExpressionPath> 12 <daConfigPath>D:\ASPX\FJSpider\FJSpider.TaskRegularLibrary\zol\DataAccessConfig.xml</daConfigPath> 13 <contentIsLoop>false</contentIsLoop> 14 <taskDescription>所有SQLServer错误信息采集</taskDescription> 15 16 </item> 17 18 19 </task>
诊断:
XML节点中有xml关键词或者特殊字符,比如例子中的&
解决:
把第七行网址里面的&修改为&