首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XmlDocument替换

XmlDocument替换
EN

Stack Overflow用户
提问于 2015-01-20 20:35:15
回答 2查看 652关注 0票数 0

有人知道在XMLDocument微框架中执行.NET的另一种方法吗?显然,我无法创建一个XmlDocument对象,因此我需要找到一个合适的替代品。此外,我也不能创建一个XmlNode对象。

我想要做的是在按下按钮时,从互联网上从rss天气提要(XML)获取信息。

代码语言:javascript
复制
//Grab wather data and display useful information.
System.Xml.XmlTextReader WeatherXML = new System.Xml.XmlTextReader(http://rss.theweathernetwork.com/weather/caab0211);
System.Xml.XmlDocument doc = new XmlDocument();
doc.Load(http://rss.theweathernetwork.com/weather/caab0211);
XmlNode node = doc.DocumentElement.SelectSingleNode("/rss/channel/item");
string attr = (node.LastChild.InnerText);

XML文档:

代码语言:javascript
复制
`<rss version="2.0">
    <channel>
        <title>The Weather Network - Medicine Hat, Alberta</title>
        <link>http://www.theweathernetwork.com/weather/caab0211?</link>
        <description>The Weather Network - ...</description>
        <copyright>copyright stuff</copyright>
        <language>en-us</language>
        <image>...</image>
        <image>...</image>
        <item>
            <title>Current Weather</title>
            <guid>http://www.theweathernetwork.com/weather/caab0211?ref=current_obs</guid>
            <link>http://www.theweathernetwork.com/weather/caab0211?ref=current_obs</link>
            <pubDate>Tue, 20 Jan 2015 11:45:00 -0500</pubDate>
            <description>Overcast, -1&nbsp;&deg;C   , Humidity  72% , Wind  W 18km/h</description>
        </item>`

我需要最后的描述(阴天,摄氏-1度,湿度72%,风力18公里/小时)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-20 21:36:02

您应该能够从您的XmlTextReader对象中获取数据,但是您需要跟踪您在文档中的位置。

看起来您正在寻找第一个channel/item/description元素。您应该能够使用Stack跟踪您的位置,因为您的Read通过阅读器。

粗略地介绍一下,每当当前的LocalNameXmlNodeType.Element时,就将它推到堆栈上,而当它是EndElement时,就会弹出。当它是一个元素时,检查stack.ToArray()是否与{"description", "item", "channel"}匹配。如果是的话,您已经找到了要查找的节点,因此请使用读取器的Value属性。

票数 0
EN

Stack Overflow用户

发布于 2015-01-20 21:52:44

为了扩展我的评论,请看一下XmlReader的定义。如果您想获得第一个description元素的值,可以使用以下代码(如下所示)轻松获得它:

代码语言:javascript
复制
private static void Main(string[] args)
{
    using (var xmlReader = XmlReader.Create("http://rss.theweathernetwork.com/weather/caab0211"))
    {
        xmlReader.ReadToFollowing("item");
        xmlReader.ReadToFollowing("description");
        Console.WriteLine(xmlReader.ReadElementString());
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28054668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档