'.', hexadecimal value 0x00, is an invalid character. Line 629, position -3749.
在使用XDocument.Parse(xml)出现这个错误,不知道是否是不规则字符引起的。
堆栈信息:
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ThrowInvalidChar(Int32 pos, Char invChar)
   at System.Xml.XmlTextReaderImpl.ParseNumericCharRefInline(Int32 startPos, Boolean expand, BufferBuilder internalSubsetBuilder, Int32& charCount, EntityType& entityType)
   at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
   at System.Xml.XmlTextReaderImpl.FinishPartialValue()
   at System.Xml.XmlTextReaderImpl.get_Value()
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
   at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
   at System.Xml.Linq.XDocument.Parse(String text, LoadOptions options)
   at System.Xml.Linq.XDocument.Parse(String text)
   at DB.SourcePagesProfile.SaveCVActive(String xml) in D:\parserProject\TransferEngine\NBDataTransferService\DB\SourcePagesProfile.cs:line 23
   at NBDataTransferWebService.DownLoadDataFromSH.DownloadSourceResume(String sourcePagesXml, String type) in D:\parserProject\TransferEngine\NBDataTransferService\NBDataTransferWebService\DownLoadDataFromSH.asmx.cs:line 63

解决方案 »

  1.   

    替换掉特殊字符string xmlStr = "your xml string";
    string resultXmlStr = System.Text.RegularExpressions.Regex.Replace(xmlStr, @"\p{C}+", "");
    XDocument.Parse(resultXmlStr);
      

  2.   

    xml文件内容非常多,所以实在不方便贴出来
      

  3.   

    Ivan (阿云)的方法我已经试过还是有问题
      

  4.   

    谢谢大家问题已经解决,是因为XDocument.Parse(xml)方法是把引入的xml文件内容从头到脚读取一边,在读取是碰到不规范字符,导致出现这个异常,当然由于xml文件非常庞大,报出的错误里又没有这个字符,由于项目时间近所以我选择了另外一种方式,去读取xml。