Ich habe HAP erfolgreich zuvor verwendet und xhtml-Seiten aus dem Internet heruntergeladen. Jetzt versuche ich jedoch XML-Dokumente zu laden und zu analysieren. HAP lädt nur XML-Dokumente, die sich auf meinem Dateisystem befinden, zum Beispiel "C: \ xml \ MyXml.xml". Es wird nicht vom Web geladen (http://www.web.com/doc.xml). Mit Fiddler kann ich sehen, dass HAP tatsächlich die XML-Dokumente über das Web anfordert, und der Server antwortet auch mit dem XML-Dokument. Es hört jedoch auf, nichts wird geparst. Das HtmlDocument ist leer, keine ChildNodes oder irgendetwas. Beim Laden vom Dateisystem wird es erfolgreich zu einem HtmlDocument geparst.
Irgendwelche Ideen?
Wenn Sie nur den XML-Code (und nicht (X) HTML) verwenden, müssen Sie HAP nicht verwenden, da .Net eine umfassende XML-Verarbeitung integriert hat:
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);
Ich nehme an, dass Sie HAP verwenden, weil das XML, das Sie analysieren möchten, ein XSL-Stylesheet angibt, um es in (X) HTML umzuwandeln, das Sie dann irgendwie manipulieren möchten?
Wenn dies nicht der Fall ist und Sie nur an der XML-Rohstruktur interessiert sind, dann verwenden Sie die eingebauten XmlDocument- und System.Xml-Namespaces von .Net, wie die Antwort von Sebastian nahelegt.
Wenn Sie die HTML-Struktur eines solchen Dokuments tatsächlich bearbeiten müssen, müssen Sie die XML-Datei selbst herunterladen. Wenden Sie die XSLT- System.Xml
mit System.Xml
an, um die resultierende HTML- System.Xml
zu generieren, bevor Sie diese mit HAP analysieren.