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;

念のため、読み取ったばかりの要素または属性の値にアクセスする間に、常に null チェックを入れます。

于 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 に答える