2011-01-10 6 views
0

Webからxhtmlページをダウンロードする前にHAPを正常に使用しました。しかし、今はXML文書をロードして解析しようとしています。 HAPは、ファイルシステム上にあるXML文書(例えば、C:¥xml¥MyXml.xml)のみをロードします。 Webからはロードされません(http://www.web.com/doc.xml)。 Fiddlerを使用すると、HAPが実際にXML文書をWeb上で要求していることがわかります。また、サーバーはxml文書でも応答します。しかし、そこで停止し、何も解析されません。 HtmlDocumentは空であり、ChildNodesはありません。ファイルシステムからロードすると、HtmlDocumentに正常に解析されます。HTMLアジリティパック - Webからではなく、ファイルシステムからのXML文書のみをロードできます。

アイデア?

答えて

5

あなたは、あなたがネットを内蔵包括的なXML処理を持っているとして、HAPを使用する必要はありませんちょうどXML(とは(X)HTML)を使用している場合:

String PostUrl = "http://www.web.com/doc.xml"; 
WebResponse webResponse = WebRequest.Create(PostUrl).GetResponse(); 
StreamReader sr = new StreamReader(webResponse.GetResponseStream()); 

String Result = sr.ReadToEnd().Trim(); 

XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(Result); 
+4

LinqからXmlを使用する場合は、var xDoc = XDocument.Load( "URL")を使用できます。 – Buginator

0

私はあなたが使用していると仮定HAPなぜなら、解析しようとしているXMLはXSLスタイルシートを指定して(X)HTMLに変換してから何らかの方法で操作したいからです。

これが当てはまらず、生のXML構造に興味があるのであれば、セバスチャンの答えとして、.NetのXmlDocumentとSystem.Xml名前空間に組み込まれています。

実際にそのようなドキュメントのHTML構造を操作する必要がある場合は、XMLを自分でダウンロードし、System.Xmlを使用してXSLTを適用し、結果のHTMLを生成してからHAPで解析してください。

関連する問題