如何获取XML的属性值使用LINQ to XML? [英] How to get the attribute value of xml using LINQ to XML?

查看:182
本文介绍了如何获取XML的属性值使用LINQ to XML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下xml模式。

 < Rooms& 
< Room RoomNumber =room1EMAIL =ssds@dsfd.comdsfdd =/>
< Room RoomNumber =room2EMAIL =ssds@sdd.comdsfdd =/>
< / Rooms>

我必须根据输入返回电子邮件地址p>

我如何使用LINQ to XML实现?

解决方案

  var doc = XDocument.Load(myXmlFilePath); 
//或doc = XDocument.Parse(myXmlString);

string roomNumber =room1;

var emailQuery = doc.Root.Elements(Room)中的房间
其中(string)room.Attribute(RoomNumber)== roomNumber
select )room.Attribute(EMAIL);

然后,使用类似的查询,您可以得到结果:

  //如果总是只有一个< Room> with given roomNumber 
var email = emailQuery.First();
//否则
var emails = emailQuery.ToList();


I have the following xml schema.

<Rooms>
    <Room RoomNumber="room1" EMAIL="ssds@dsfd.com" dsfdd=""/>
    <Room RoomNumber="room2" EMAIL="ssds@sdd.com" dsfdd=""/>
</Rooms>

I have to return Email address based on the input(input to program is room number).

How i can achieve this using LINQ to XML?

解决方案

var doc = XDocument.Load(myXmlFilePath);
// or doc = XDocument.Parse(myXmlString);

string roomNumber = "room1";

var emailQuery = from room in doc.Root.Elements("Room")
                 where (string)room.Attribute("RoomNumber") == roomNumber
                 select (string)room.Attribute("EMAIL");

Then, with a query like that you can get results:

// if there is always only one <Room> with given roomNumber
var email = emailQuery.First();
// otherwise
var emails = emailQuery.ToList();

这篇关于如何获取XML的属性值使用LINQ to XML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆