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

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

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 10 января 2011

Если вы используете только 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);
0 голосов
/ 10 января 2011

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

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

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

...