【问题标题】:How can I fill variables with xml node values from a xml file?如何使用 xml 文件中的 xml 节点值填充变量?
【发布时间】:2013-04-28 06:03:50
【问题描述】:

我有一个如下所示的 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 项。

如何为我的变量提供&lt;title&gt;&lt;description&gt;&lt;link&gt;&lt;PubDate&gt; 中的值。

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

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

感谢任何形式的帮助

【问题讨论】:

  • 我会研究 linq 和 xml

标签: c# xml


【解决方案1】:

您似乎尝试解析 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 命名空间有问题。

【讨论】:

  • 里面我有 url.com/blaba.jpg" /> 我怎样才能也填写这个img url?
  • @Obsivus 正如我在回答you may still have issues with Xml namespaces 中所说。没有看到你的完整xml,不可能给出答案。
  • 我尝试了 syndicationfeed,它工作得非常好,完全没有问题,但没有图像属性
  • @Obsivus 因为它们是依赖于提供程序的属性。您可能需要使用 Linq To Xml 来获取这些属性。
  • 我明白了,我尝试了 linq to xml,它也可以工作,但我似乎无法填充第二个缩略图媒体图像:(你知道我该怎么做吗?
【解决方案2】:

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 2013-08-25
      • 2013-12-19
      • 2012-09-22
      • 2013-01-24
      • 2013-07-28
      • 1970-01-01
      • 2015-01-11
      相关资源
      最近更新 更多