System.Xml.XmlException: '=' is an unexpected token. The expected token is ';'

今天碰到的一个问题,把string 解析成xml时,抛出异常,如下:

问题:

An exception of type'System.Xml.XmlException' occurred and was caught.

Type : System.Xml.XmlException,System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken= 

Message : '=' is an unexpected token. The expected token is ';'. Line X,position XXX.

或者 

Message : The 'SPAN' start tag on line 1position 137 does not match the end tag of 'P'. Line X, position XXX.

Source : System.Xml

Help link :

LineNumber : X

LinePosition : XXX

SourceUri :

Data :System.Collections.ListDictionaryInternal

TargetSite : Void Throw(System.String,System.String[]) HResult : -2146232000

Stack Trace :    atSystem.Xml.XmlTextReaderImpl.Throw(String res, String[] args)

  at System.Xml.XmlTextReaderImpl.HandleEntityReference(BooleanisInAttributeValue, EntityExpandType expandType, Int32& charRefEndPos)

  at System.Xml.XmlTextReaderImpl.ParseAttributeValueSlow(Int32 curPos,Char quoteChar, NodeData attr)

  at System.Xml.XmlTextReaderImpl.ParseAttributes()

  at System.Xml.XmlTextReaderImpl.ParseElement()

  at System.Xml.XmlTextReaderImpl.ParseElementContent()

  at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)

  at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptionso)

  at System.Xml.Linq.XElement.ReadElementFrom(XmlReader r, LoadOptions o)

  at System.Xml.Linq.XElement.Load(XmlReader reader, LoadOptions options)

  at System.Xml.Linq.XElement.Parse(String text, LoadOptions options)


字符串是

title

text 1

description:

1. Providerr

2. Reference eeGuideline

3. Discuss

4. Schedulet


原因是

A 标签在解析过程有问题,说是因为&符号。 

或者 HTML 标签不匹配, 即:开始和结束标签不匹配。

System.Xml.XmlException: '=' is an unexpected token. The expected token is ';'_第1张图片


解决方法:

1.针对特殊字符,例如:&, 需要转义

2.对于标签不匹配,例如: 没有结束标签,需要手动修改。 

可以使用工具XML Notepad, 来确定出错位置,很方便。


如果在开发过程中,需要使用文本编辑器。

推荐一个工具:TinyMCE. 

这个工具可以自动修复不正确的标签。出错率低。








你可能感兴趣的:(C#)