HTML Agility Pack - может загружать XML-документ только из файловой системы, а не из Интернета.

Раньше я успешно использовал HAP, загружая xhtml-страницы из Интернета. Однако теперь я пытаюсь загрузить и проанализировать XML-документы. HAP будет загружать только XML-документы, расположенные в моей файловой системе, например, "C:\xml\MyXml.xml". Он не будет загружать его из Интернета (http://www.web.com/doc.xml). Используя Fiddler, я вижу, что HAP фактически запрашивает XML-документы через Интернет, и сервер также отвечает XML-документом. Однако на этом он останавливается, ничего не анализируется. HtmlDocument пуст, никаких дочерних узлов или чего-то еще. При загрузке из файловой системы он успешно анализируется в HtmlDocument.

Есть идеи?


person Buginator    schedule 10.01.2011    source источник


Ответы (2)


Если вы используете только 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);
person Sebastiaan    schedule 10.01.2011
comment
И если вы используете Linq to Xml, вы можете использовать var xDoc = XDocument.Load(URL); - person Buginator; 23.01.2011
comment
Как преобразовать XmlDocument в HAP HtmlDocument? - person Jeson Martajaya; 15.04.2018

Я предполагаю, что вы используете HAP, потому что XML, который вы пытаетесь проанализировать, указывает таблицу стилей XSL для преобразования ее в (X)HTML, которой вы затем хотите каким-то образом манипулировать?

Если это не так, и вас просто интересует необработанная структура XML, используйте встроенные в .Net пространства имен XmlDocument и System.Xml, как предлагает ответ Себастьяна.

Если вам действительно нужно манипулировать структурой HTML такого документа, вам нужно будет загрузить XML самостоятельно, применить XSLT с помощью System.Xml для создания результирующего HTML, прежде чем пытаться проанализировать его с помощью HAP.

person RobV    schedule 10.01.2011