3

不正な形式の XML スニペットを含む次のサード パーティの xml があり、XmlTextReader を使用してそれを読み取ろうとしています。

   <ReplacementDefinitions>
        <Def key="EnclosingFunction.name" value="_jspService(System.Configuration.ConfigurationManager.ConnectionStrings["Upload_Service"].ToString())"/>
        <Def key="PrimaryCall.name" value="print()"/>
        <Def key="PrimaryLocation.file" value="Error.jsp"/>
        <Def key="PrimaryLocation.line" value="20"/>
        <LocationDef path="webapp/jsp/common/Error.jsp" line="20" lineEnd="20" colStart="27" colEnd="0" key="PrimaryLocation"/>
      </ReplacementDefinitions>

XmlTextReader が例外をスローしています:

'Upload_Service' is an unexpected token. Expecting white space. Line 44126, position 123.

["Upload_Service"] の引用符に引っかかっています。XmlTextReader がデータを解析できるように、これらの引用符をエスケープする方法についてのアイデアはありますか?

4

1 に答える 1

1

よりフォールト トレラントな html パーサー ( HtmlAgilityPack など) を使用して xml の解析を試みることができます。

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xml);

var defs = doc.DocumentNode.Descendants("def")
        .ToDictionary(d=>d.Attributes["key"].Value,d=>d.Attributes["value"].Value);
于 2012-10-23T20:14:28.953 に答える