从XMLDocument中提取1个数据元素

时间:2014-07-02 11:24:32

标签: c# asp.net xml

我在C#XMLDocument中有以下XML结构。

<result>
 <contact id="824" date="1404297626" dlm="1404297626" score="0.00" purl="" bulk_mail="1">
  <Group_Tag name="Contact Information">
   <field name="First Name">forename</field>
   <field name="Last Name">surname</field>
  </Group_Tag>
 </contact>
</result>

我希望只将联系人的id提取到变量中。我怎么能这样做?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

直接用一点LINQ:

XDocument doc = XDocument.Load("data.xml");
var value = (from n in doc.Descendants("contact")
              select n.Attribute("id").Value).SingleOrDefault();

这假定XML中唯一的元素是您显示的元素。如果您有多个元素,则可以考虑使用FirstOrDefault();

答案 1 :(得分:1)

尝试该代码

XDocument doc = XDocument.Load(@"Xml.txt");
var res = doc.Root.Descendants().Where(x => x.Name.LocalName.Equals("contact")).FirstOrDefault();
string ContactID = res.Attribute("id").Value;

MessageBox.Show("Your contact ID = "+ ContactID);

或者你可以使用:

var res = (from x in doc.Descendants("contact")
           select x.Attribute("id").Value).FirstOrDefault();

MessageBox.Show("Your contact ID = "+ res.ToString());

输出

Your contact ID = 824