如何在XML中检索元素中元素的值

时间:2012-10-22 01:09:50

标签: c# xml linq

我有以下XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Project>
<Site Address="0" Connect="COM1,9600">
</Site>
</Project>

我想获得'连接'的价值

我有这段代码:

var doc = XDocument.Load(xml);
var q = from x in doc.Root.Elements()
        where x.Name.LocalName == "Connect"
        select x;
ClientTB.Text = q.FirstOrDefault().ToString();

但是当我运行它时,我得到的错误是Object引用未设置为对象的实例。

如果我将where语句更改为:

        where x.Name.LocalName == "Site"

然后我的文字包含<Site Address="0" Connect="COM1,9600"></Site>

我需要做些什么才能获得Connect的价值?

1 个答案:

答案 0 :(得分:3)

var q = from x in doc.Root.Elements()
        where x.Name.LocalName == "Site"
        select x.Attribute("Connect");

替代

 var q = from x in doc.Descendants("Site").Attributes("Connect")
         select x;