HTML Agility Pack - Webからではなく、ファイルシステムからのXML文書のみを読み込むことができます

.net c# html-agility-pack scrape

質問

私は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に正常に解析されます。

何か案は?

受け入れられた回答

XMLだけを使用している場合(XはHTML)、HAPを使用する必要はありません.Netには包括的なXML処理が組み込まれています。

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);

人気のある回答

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

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

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




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ