Sử dụng này:
xDocTest.Root.Element("Cust").Element("Adress").Element("City").Value
Nếu bạn sử dụng Elements (lưu ý số nhiều) nó mang lại cho u một IEnumerable, điều này sẽ được sử dụng như thế này:
XML
<Father>
<Child>Hello</Child>
<Child>World!</Child>
</Father>
C#
foreach(var childElement in Root.Elements("Child")) Console.WriteLine(childElement.Value);
Hoặc lấy ví dụ của bạn:
foreach(var child in xdoc.Root.Element("Cust").Element("Address").Elements())
Console.WriteLine(string.Format("{0} : {1}", child.Name, child.Value);
Không chắc cách Phần tử hoạt động nếu bạn có nhiều Phần tử cùng tên. Vì vậy, bạn có thể muốn sử dụng Elements và Inerate trên tất cả các lần xuất hiện.
Và trong LINQ Nếu có nhiều hơn một khách hàng ...
var result = from cust in xdoc.Root.Elements("Cust")
where cust.Elements("ACTNumber").Any() // This is to make sure there
// is an element called ACTNumber
// otherwise .Value would create
// Nullrefexception.
select child.Element("ACTNumber").Value;
là nó thực sự cần thiết để đặt 'doc.Root.Element(). Element()'? Cách ngắn nhất để có được "ACTNumber" ngay lập tức, lần đầu tiên xảy ra, không có vấn đề gì cấp nó được tìm thấy trong? – MarioDS
@MDeSchaepmeester: Đối với điều đó, bạn sẽ sử dụng 'doc.Descendants (" ACTNumber "). First()' –