获取XmlNode

时间:2016-07-10 09:50:32

标签: c# xml xmlnode

我有一个XmlNode,它的OuterXml是我发布的下一个代码。我需要知道如何获得每个广告系列的名称和年龄。

XmlNode Response = client.GetNamesAndAges(xmlRequest);

<Example>
  <FromDate>12-05-2016</FromDate>
  <ToDate>25-05-2016</ToDate>
  <Campaigns>
    <Campaign>
      <Name>A</Name>
      <age>2</age>
    </Campaign>
    <Campaign>
      <Name>B</Name>
      <age>1</age>
    </Campaign>
  </Campaigns>
  <Status></Status>
</Example>

2 个答案:

答案 0 :(得分:1)

您可以通过SelectNodes()使用XPath来获取特定节点/元素,在这种情况下为Campaign元素,然后从每个{{1}打印Nameage值}}:

Campaign

BTW,var campaignList = Response.SelectNodes("Campaigns/Campaign"); foreach(XmlNode campaign in campaignList) { Console.WriteLine(campaign["Name"].InnerText); Console.WriteLine(campaign["age"].InnerText); } Name元素。 XML中的 Attributes 用于引用其他内容,即age是以下XML元素bar中值为baz的属性的名称。

答案 1 :(得分:1)

使用xml linq

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            var campaign = doc.Descendants("Campaign").Select(x => new
            {
                name = (string)x.Element("Name"),
                age = (int)x.Element("age")
            }).ToList();
        }
    }
}