2

これは、1 つの URL の xml を取得するために作成したコードですが、任意の URL で「ルート レベルのデータが無効です」と表示されます。誰かが理由を指定できますか?

XmlDocument xdoc = new XmlDocument();//xml doc used for xml parsing                           
xdoc.LoadXml("http://latestpackagingnews.blogspot.com/feeds/posts/default");//loading XML in xml doc
XmlNodeList xNodelst = xdoc.DocumentElement.SelectNodes("entry");//reading node so that we can traverse thorugh the XML
Response.Write(xNodelst);
4

3 に答える 3

0

XmlDocument.LoadXmlメソッドはXMLテキストを待機しますが、ソースURLは待機しません。

まず、ページのコンテンツをにダウンロードしてstringから、に渡しLoadXmlます。ダウンロード方法は次のとおりです。

public string GetUrlContent(string url)
{
    var request = (HttpWebRequest)HttpWebRequest.Create(url);
    var response = (HttpWebResponse)request.GetResponse();

    var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
    var content = reader.ReadToEnd();

    reader.Close();
    response.Close();

    return content;
}

あなたの場合は次のようになります。

var content = GetUrlContent("http://latestpackagingnews.blogspot.com/feeds/posts/default");
var doc = new XmlDocument();
doc.LoadXml(content);
于 2012-08-23T10:50:04.143 に答える
0

xdoc.LoadXmlURLを読み取ることができません。に変更するとxdoc.Load、機能します。

また読むことができます:C#で返されたXMLを使用する

于 2012-08-23T10:50:06.157 に答える
0

最初に WebClient クラスを使用して xml データをダウンロードする必要があります

string downloadedString;
System.Net.WebClient client = new System.Net.WebClient();
downloadedString = client.DownloadString("http://latestpackagingnews.blogspot.com/feeds/posts/default");
//Now write this string as an xml
//I think you can easily do it with XmlDocument class and then read it
于 2012-08-23T10:54:37.287 に答える