1

我的 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。有人可以给我一些好的建议......非常感谢大家!

4

2 回答 2

1

或者

var xdoc = XDocument.Load(path_to_xml);
var lastElement = xdoc.Root.Elements("khachhang").Last();
var value = lastElement.Attribute("maso").Value;

请注意,我总是在访问我刚刚读取的元素或属性值之间进行空检查,以防万一。

于 2013-01-18T12:56:30.923 回答
0
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");

此外,如果您的 xml 中可能没有khachhang元素,您应该尝试获取最后一个元素。如果khachhang找到元素,则获取属性:

var lastKhachhang = xdoc.Descendants("khachhang").LastOrDefault();
if (lastKhachhang == null)
    // use default maso value
else
   maso = (string)lastKhachhang.Attribute("maso");

LastOrDefault在这种情况下使用很重要。否则你会得到一个例外。

于 2013-01-18T12:50:27.180 回答