从xml中获取child的最后一个值

时间:2014-04-23 14:56:50

标签: c# xml linq

我想在xml文件中获取id最后一次预订的价值。

这是我的代码:

        XElement id = (from p in z.Elements("booking")
                           select p.Element("id")).Last();

然而,这会返回标签以及:5 知道如何在不使用-tags的情况下获取值吗?

xml文件看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<bookings>
<booking>
<id>1</id>
<name>a</name>
</booking>
<booking>
<id>2</id>
<name>b</name>
</booking>
</bookings>

2 个答案:

答案 0 :(得分:1)

试试这个:

XElement lastElement = (from p in doc.Elements("bookings").Elements("booking")
                        select p.Element("id")).LastOrDefault();

if(lastElement!=null)
    var value = lastElement.Value;

我认为doc是代表你xml的对象。

在我上面写的代码之前,你应该声明这个

XDocument doc = XDocument.Load("test.xml");

我认为xml文件的名称是test.xml。

答案 1 :(得分:0)

如果总会有至少一个预订,那么您应该获得该ID的值。如果文件中没有id(因此没有预订),则id将为""string.Empty,具体取决于您喜欢引用空字符串的方式。

string id = (string)z.Descendants("id").LastOrDefault();