ASP.net 从 URL 加载 XML 文件

Posted

技术标签:

【中文标题】ASP.net 从 URL 加载 XML 文件【英文标题】:ASP.net load XML file from URL 【发布时间】:2011-07-03 10:30:19 【问题描述】:

试图只是简单地解析一个 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 加载它?

【问题讨论】:

【参考方案1】:

试试这个:

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 命名空间中。他们可以很容易地为您完成解析工作。

【讨论】:

几乎正确......只需将“new Uri()”位移到我的眼前。 Load 直接接受 URL,但不接受 URI 对象。 这些都不起作用...和@Jeff,删除新的 URI 行与我原来问题中的代码完全相同!?!?!? @Tom Gullen:我用 Load 方法替换了 LoadXml 方法。前者等待xml数据,后者等待找到xml数据的位置 啊啊啊啊。我希望它一遍又一遍地说“readreadread”,但页面是空白的……不过没有错误。 @Tom Gullen:现在我认为您的 xpath 查询无效。要么用正确的替换它,要么看看System.ServiceModel.Syndication中的类提供的.net 内置提要阅读

以上是关于ASP.net 从 URL 加载 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章

as3中xml文件的加载和读取

asp.net mvc 加载慢

使用 axios 从 vue 上传 XML 文件到 asp .net core

asp.net如何获取到xml文件的节点值

MVC asp.net 从网络文件夹加载图像

如何使用 C# ASP.Net 从 XML 文档中获取特定 XML 元素的列表?