2016-04-12 18 views
0

xml文字列を解析するのにWindows.Data.Xml.Dom.XmlDocumentを使用しています。特定のISO文字のXMLDocument.LoadXmlでの例外

コードは、問題は、それがいくつかの特定の文字に遭遇した場合に例外をスローする点である

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.LoadXml(xmlString); 

簡単です。以下に例を示します。 (はい、私はパース午前XMLは実際にhtmlですが、それはXMLとして解析する必要があります)

は、この文字列は、例外をスロー

<div>So schnell. So vielf&auml;ltig. Soo lecker!</div> 

これらは

<div>So schnell. So vielfltig. Soo lecker!</div> 

<div>So schnell. So vielf&lt;ltig. Soo lecker!</div> 

これらは、メッセージありませんし、例外のタイプ。
HRESULTからの例外:0xC00CE002 System.Exception

特定の文字だけが例外をトリガーする理由がわかりません。誰でも助けることができますか?

答えて

2

Xmlはすべてのhtml文字をサポートしておらず、あなたが言及した文字はhtml文字です。 XMLおよびHTMLのためのサポートされている文字リスト: https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML

XMLは、唯一のあなたがそれらをXMLとしてロードするために他の特殊文字の進値を使用する必要がありますquot amp apos lt gt
をサポートしています。

+0

あなたの答えに感謝します。あなたは例外の原因を特定しました。私は16進値を使用する別のソリューションを提供したいと思います。 'System.Net.WebUtility.HtmlDecode'メソッドを使用して解析する前に文字列をデコードすることができます。私は数日後にあなたの答えを受け入れます(習慣であるように) – Corcus

関連する問題