我的XML文件是这样的:
<?xml version="1.0" encoding="utf-8"?>
<dskh>
<khachhang maso="kh01">
<ten_kh>nhi</ten_kh>
<tuoi_kh>15</tuoi_kh>
<dchi_kh>dt</dchi_kh>
</khachhang>
<khachhang maso="kh02">
<ten_kh>hung</ten_kh>
<tuoi_kh>15</tuoi_kh>
<dchi_kh>hcm</dchi_kh>
</khachhang>
</dskh>
我想获得khachhang元素的最后一个属性值。在本例中为maso="kh02"。因为我想当我插入新的khachhang元素时,maso属性将增加auto。有人能给我一些好的建议吗?非常感谢大家!
或者
var xdoc = XDocument.Load(path_to_xml);
var lastElement = xdoc.Root.Elements("khachhang").Last();
var value = lastElement.Attribute("maso").Value;
注意,我总是在访问刚刚读取的元素或属性值之间进行空检查,以防万一。
var xdoc = XDocument.Load(path_to_xml);
var result = (string)xdoc.XPathSelectElement("//khachhang[last()]")
.Attribute("maso");
或
var result = (string)xdoc.Descendants("khachhang").Last()
.Attribute("maso");
另外,如果可能没有khachhang
元素将在您的xml中,您应该尝试获得最后一个元素。如果找到khachhang
元素,则获取属性:
var lastKhachhang = xdoc.Descendants("khachhang").LastOrDefault();
if (lastKhachhang == null)
// use default maso value
else
maso = (string)lastKhachhang.Attribute("maso");
在这种情况下使用LastOrDefault
很重要。