2009-01-28 55 views
52

Làm cách nào để có được con của một XElement?Trẻ em của XElement

Tôi hiện đang sử dụng hàm XElement.Descendants(), trả về tất cả các cấp của XElements, thay vì chỉ các nút con.

Điều tôi thực sự thích là một IEnumerable chỉ là trẻ em.

Trả lời

86

Các phần tử con trực tiếp của một XElement có thể truy cập bằng cách gọi Element() hoặc Elements() chức năng . Sử dụng quá tải với tên để truy cập các phần tử cụ thể hoặc không truy cập vào tất cả các phần tử con.

Ngoài ra còn có các phương pháp tương tự như Attribute()Attributes() mà bạn có thể thấy hữu ích.

+0

Điều này dường như đã giải quyết câu hỏi OPs nhưng không có quá tải parameterless cho 'Element()' vì vậy điều này không giúp tôi để có được đứa con đầu tiên khi tôi biết rằng 'XName' của nó có thể khác nhau. – rtpHarry

+3

Nếu bạn chỉ muốn đứa trẻ đầu tiên, không biết tên, hãy thử sử dụng 'Elements(). FirstOrDefault()'. – Bevan

+2

Tại sao họ không thể gọi nó là "XElement.Children"? Cách dễ khám phá hơn. – Tacroy

10

XElement.Nodes() sẽ giúp bạn những gì bạn muốn.

Nếu bạn chỉ muốn các nút XElement con thì bạn có thể cần phải hạn chế nó (tùy thuộc vào XML của bạn) với:

XElement.Nodes().OfType<XElement>() 
Các vấn đề liên quan