ASP.net从URL加载XML文件

时间:2011-02-24 09:43:52

标签: c# asp.net xml

尝试简单地解析XML文件;

    protected void Page_Load(object sender, EventArgs e)
    {

        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

        foreach (XmlNode xNode in xNodelst)//traversing XML 
        {
            litFeed.Text += "read";
        }

    }

但我明白了:

  

根级别的数据无效。   第1行,第1位。

我是否必须先对文件执行XMLHTTP请求?或者我可以假设我可以从外部网址加载它吗?

2 个答案:

答案 0 :(得分:9)

我在雅虎发现此链接非常有用且简单。整齐!!!

http://developer.yahoo.com/dotnet/howto-xml_cs.html

答案 1 :(得分:8)

试试这个:

protected void Page_Load(object sender, EventArgs e)
{

    XmlDocument xdoc = new XmlDocument();//xml doc used for xml parsing

    xdoc.Load(
        "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

    foreach (XmlNode xNode in xNodelst)//traversing XML 
    {
        litFeed.Text += "read";
    }

}

LoadXml正在直接等待xml字符串,其中Load可以使用uri来获取xml数据。使用您的代码,xml解析器实际上试图将地址解析为xml,而不是uri位置的内容。

[编辑] 您可以查看.Net Framework的内置Feed处理类。这些类位于System.ServiceModel.Syndication命名空间中。他们可以很容易地为你解析工作。