2011-01-10 35 views
0

我之前成功地使用過HAP,從網頁下載xhtml頁面。但是,現在我試圖加載和解析XML文檔。 HAP只會加載位於我的文件系統上的xml文檔,例如「C:\ xml \ MyXml.xml」。它不會從web(http://www.web.com/doc.xml)加載它。使用Fiddler,我可以看到HAP實際上是通過Web請求xml文檔,並且服務器也以xml文檔進行響應。然而,它停在那裏,沒有任何東西被解析。 HtmlDocument是空的,沒有ChildNodes或任何東西。從文件系統加載時,它會成功解析爲HtmlDocument。HTML敏捷包 - 只能從文件系統加載xml文件,而不能從網絡加載

任何想法?

回答

5

如果你只是使用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); 
+4

如果你使用Linq到Xml,你可以使用var xDoc = XDocument.Load(「URL」); – Buginator

0

我假設你正在使用HAP是因爲你試圖解析的XML指定了一個XSL樣式表來將它轉換爲(X)HTML,然後你想以某種方式操縱它?

如果情況並非如此,並且您只是對原始XML結構感興趣,則可以像Sebastian的答案所示,使用建立在XmlDocument和System.Xml名稱空間中的.Net。

如果您確實需要操作此類文檔的HTML結構,則需要自己下載XML,然後使用System.Xml應用XSLT生成結果HTML,然後嘗試使用HAP解析此結構。