如何从xml文件中填充xml节点值的变量?

时间:2013-04-27 21:21:53

标签: c# xml

我有一个xml文件,如下所示:

            <item>
                  <title>Lore ipsum etc </title>
                  <description>lorem ipsum etc etc</description>
                  <link>http://url.com</link>
                  <guid isPermaLink="false">http://url.com</guid>
                  <pubDate>Sat, 27 Apr 2013 14:56:50 GMT</pubDate>
                  <media:thumbnail width="66" height="49" url="http://url.com/media/images/67275000/jpg/_67275945_017846423.jpg" />
          <media:thumbnail width="144" height="81" url="http://http://url.com/media/images/67276000/jpg/_67276200_017846423.jpg" />
           </item>
        <item>
              <title>Lore ipsum etc </title>
              <description>lorem ipsum etc etc</description>
              <link>http://url.com</link>
              <guid isPermaLink="false">http://url.com</guid>
              <pubDate>Sat, 28 Apr 2013 14:56:50 GMT</pubDate>
 <media:thumbnail width="66" height="49" url="http://url.com/media/images/67275000/jpg/_67275945_017846423.jpg" />
      <media:thumbnail width="144" height="81" url="http://http://url.com/media/images/67276000/jpg/_67276200_017846423.jpg" />
       </item>

该列表有大约50个项目。

如何为变量提供<title><description><link><PubDate>内的值。

到目前为止我已经这样做了:

url = "http://url.com/file.xml";
XmlDocument doc = new XmlDocument();
doc.Load(url);

感谢任何形式的帮助

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您似乎尝试解析RSS源。您可以使用SyndicationFeed进行此操作。

但无论如何,它是一个简单的xml,你可以使用Linq To Xml

var xdoc = XDocument.Load(url);
var items = xdoc.Descendants("item")
            .Select(item => new
            {
                Title = item.Element("title").Value,
                description = item.Element("description").Value,
                Link = item.Element("link").Value
            })
            .ToList();

PS:您尚未发布完整的xml(例如,没有根元素),您可能仍然遇到 Xml命名空间的问题。

答案 2 :(得分:0)

要反序列化xml,请尝试以下方法:http://undefinedvalue.com/2011/11/22/deserializing-objects-xml-c