微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 无法将字符串转换为XML

我将 XML作为字符串传递给方法,并再次将其转换为XML来完成我的工作.

它的工作正常,但是当有特殊字符时,如&或=它给出了一个错误.

我的XML字符串:

<SuggestedReadings>
   <Suggestion Text="Customer Centricity" Link="http://wdp.wharton.upenn.edu/book/customer-centricity/?utm_source=Coursera&utm_medium=Web&utm_campaign=custcent" SuggBy="Pete Fader�s" />
   <Suggestion Text="Global Brand Power" Link="http://wdp.wharton.upenn.edu/books/global-brand-power/?utm_source=Coursera&utm_medium=Web&utm_campaign=glbrpower" SuggBy="Barbara Kahn�s" />
</SuggestedReadings>

我的代码是:

public class saveData(string strXml)
{
      XmlDocument xmlDoc = new XmlDocument();
      xmlDoc.LoadXml(CD.SRList);// here its giving error
}

错误

‘=’ is an unexpected token. The expected token is ‘;’. Line 1,position 150.

完整错误是:

System.Xml.XmlException was unhandled by user code HResult=-2146232000
Message=’=’ is an unexpected token. The expected token is ‘;’. Line 1,
position 150. Source=System.Xml LineNumber=1 LinePosition=150
SourceUri=”” StackTrace: at
System.Xml.XmlTextReaderImpl.Throw(Exception e) at
System.Xml.XmlTextReaderImpl.Throw(String res,String[] args) at
System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(String
expectedToken1,String expectedToken2) at
System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(Int32 pos,String
expectedToken1,String expectedToken2) at
System.Xml.XmlTextReaderImpl.HandleEntityReference(Boolean
isInAttributeValue,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.XmlTextReaderImpl.Read() at
System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) at
System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at
System.Xml.XmlLoader.Load(XmlDocument doc,XmlReader reader,Boolean
preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader
reader) at System.Xml.XmlDocument.LoadXml(String xml) at
ICA.LMS.Service.Controllers.AdminCourseApiController.SaveCourse(CourseDetails
CD) in d:\Live
Projects\ICA_LMS\ICA_LMS_WebAPI\Controllers\AdminCourseApiController.cs:line
122 at lambda_method(Closure,Object,Object[] ) at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__displayClass10.b__9(Object
instance,Object[] methodParameters) at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object
instance,Object[] arguments) at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext
controllerContext,IDictionary`2 arguments,CancellationToken
cancellationToken) InnerException:

解决方法

您的文档缺少XML标头,这是必需的.此外,你没有正确地逃避&字符.

尝试在XML文档之上添加它:

<?xml version="1.0" encoding="UTF-8"?>

并且还替换&与& amp ;. (见list of characters to escape)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐