Root-element fehlt Fehler für .net XmlDocument.load()
Grüße alle.
Ich bin immer ein asp.net Fehler "Root element is missing" wenn ich das laden der Ergebnisse einer REST-Anforderung in ein XmlDocument. Das gleiche REST-Anforderung sieht gut aus und gibt gültige Ergebnisse, wenn ich es ausführen mit dem Firefox-addon "RESTTEST". Aber der Fehler zeigt sich in der C#.net code-behind. Weiß jemand, was könnte dies verursachen? Hier ist der relevante code:
HttpWebResponse response = null;
response = (HttpWebResponse)request.GetResponse();
HttpStatusCode statusCode = response.StatusCode;
Stream responseData = response.GetResponseStream();
StreamReader sr = new StreamReader(responseData);
XmlTextReader reader = new XmlTextReader(sr);
XmlDocument doc = new XmlDocument();
doc.Load(sr); //here is where the error occurs.
Mein Ziel ist, laden Sie die Ergebnisse der REST-Anforderung in eine traverse-in der Lage, XML-Daten-Modell, welches kann ich dann nehmen die Elemente und Ihre Werte aus.
Wenn ich mit diesem code, bekomme ich die erwarteten Ergebnisse. Was ist der Unterschied?
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element: //The node is an Element.
Response.Write("Element Name: " + reader.Name);
while (reader.MoveToNextAttribute()) //Read attributes.
Response.Write(" " + reader.Name + "='" + reader.Value + "'");
Response.Write("<br />");
break;
case XmlNodeType.Text: //Display the text in each element.
Response.Write("Element value: " + reader.Value);
Response.Write("Read key=" + reader.Name + ", value=" + reader.Value + "<br/>");
break;
case XmlNodeType.EndElement: //Display end of element.
Response.Write("<br />");
break;
}
}
- Kannst du die Xml, die Sie wieder von REST TEST, so können wir den Augapfel.
- Es ist wahrscheinlich, dass das XML ist nicht XML oder anderweitig fehlerhaft. Können Sie uns ein Beispiel für die Ergebnisse der REST-Anforderung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie XML, ist ein fragment, eher als ein vollständig strukturiertes XML-Dokument-- das ist, warum Sie nicht über die Wurzel. Um dieses zu erhalten, Arbeit, die Sie haben, konfigurieren Sie die XMLDocument-Objekt zu akzeptieren, Fragmente...
Versuchen Sie es mit
sr.ReadToEnd()
um zu sehen, was wird zu Ihnen zurückgegeben. Es ist wahrscheinlich eine leere Zeichenfolge.Auch, Sie sollten mit
XmlReader.Create
wenn Sie .NET 2.0 oder höher;XmlTextReader
ist veraltet.Sehen Ein REST-Client-Bibliothek für .NET, Teil 1 für ein Beispiel, dass die XML-Serialisierung verwendet. (sorry, es gibt keine Teil 2).