c# - Different behaviors between XmlDocument.LoadXml and XDocument.Parse -
our project has been converted use xdocument xmldocument few days ago, found strange behavior while processing xml entity in attribute value xdocument.parse, sample code following:
the xml string:
string xml = @"<char symbol=""�"">";
the xmldocument.loadxml code , result:
xmldocument xmldocument = new xmldocument(); xmldocument.loadxml(xml); console.writeline(xmldocument.outerxml);
result:
<char symbol="�" />
the xdocument.parse code , exception:
xdocument xdocument = xdocument.parse(xml); console.writeline(xdocument.tostring());
exception:
a first chance exception of type 'system.xml.xmlexception' occurred in system.xml.dll '.', hexadecimal value 0x00, invalid character. line 1, position 18. @ system.xml.xmltextreaderimpl.throw(exception e) @ system.xml.xmltextreaderimpl.throw(string res, string[] args) @ system.xml.xmltextreaderimpl.throw(int32 pos, string res, string[] args) @ system.xml.xmltextreaderimpl.parsenumericcharrefinline(int32 startpos, boolean expand, stringbuilder internalsubsetbuilder, int32& charcount, entitytype& entitytype) @ system.xml.xmltextreaderimpl.parsenumericcharref(boolean expand, stringbuilder internalsubsetbuilder, entitytype& entitytype) @ system.xml.xmltextreaderimpl.handleentityreference(boolean isinattributevalue, entityexpandtype expandtype, int32& charrefendpos) @ system.xml.xmltextreaderimpl.parseattributevalueslow(int32 curpos, char quotechar, nodedata attr) @ system.xml.xmltextreaderimpl.parseattributes() @ system.xml.xmltextreaderimpl.parseelement() @ system.xml.xmltextreaderimpl.parsedocumentcontent() @ system.xml.xmltextreaderimpl.read() @ system.xml.linq.xdocument.load(xmlreader reader, loadoptions options) @ system.xml.linq.xdocument.parse(string text, loadoptions options) @ system.xml.linq.xdocument.parse(string text)
it seems "�" invalid character, change value valid character such "`" both methods worked well.
is there way change xdocument.parse behavior ignore invalid character in attribute xmldocument.loadxml does?
according this arctice value � invalid. i've experienced myself xdocument class follows xml standard stricter xmldocument (which think thing).
read article, give suggestions how around error.
Comments
Post a Comment