2012-08-23 2 views
2

이것은 하나의 URL의 XML을 가져 오기 위해 작성한 코드이지만 "루트 레벨의 데이터는 유효하지 않습니다"라는 메시지가 있습니다. 누군가가 이유를 지정할 수 있습니까?Stuck Streaming Xml

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); 

답변

0

XmlDocument.LoadXml 메서드는 원본 텍스트가 아니라 XML 텍스트를 기다리고 있습니다.

먼저 페이지 콘텐츠를 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); 
0

xdoc.LoadXml 읽기 URL에 대해, xdoc.Load로 변경할 수 없습니다 그것이 작동 여기에 다운로드 할 수있는 방법이다.

당신은 또한 읽을 수 있습니다 Using Returned XML with C#

0

먼저 웹 클라이언트 클래스를 사용하여 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