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 文件的主要内容,如果未能解决你的问题,请参考以下文章