ASP.net загрузить XML-файл с URL - PullRequest
4 голосов
/ 24 февраля 2011

Попытка просто разобрать файл 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-запрос к файлу? Или я прав, предполагая, что могу загрузить его с внешнего URL-адреса?

Ответы [ 2 ]

9 голосов
/ 23 августа 2011

Я нашел эту ссылку в Yahoo очень полезной и простой.Аккуратно !!!

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

8 голосов
/ 24 февраля 2011

попробуйте это:

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. Эти классы находятся в пространстве имен System.ServiceModel.Syndication . Они могут легко разобраться для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...