2013-08-22 33 views
7

Vì vậy, tôi có một XElement, có chứa nhiều phần tử con. Tôi có thể tuyên bố thành công trong việc XElement, và viết nó vào một tập tin:Cách lấy các phần tử con và cháu từ phần tử XML?

Test.project:

<?xml version="1.0" encoding="utf-8"?> 
<project> 
    <child> 
     <grand-child1> 
      <great-grand-child1>Hello There!</great-grand-child1> 
      <great-grand-child2>Hello World!</great-grand-child2> 
     </grand-child1> 
     <grand-child2>Testing 123...</grand-child2> 
    </child> 
</project> 

Sau đó, tôi đang cố gắng để đọc từ tập tin. Tôi đã tìm kiếm các cách để có các nút con và nút con, và thấy rằng tôi có thể sử dụng XElement.XPathSelectElement(). Vấn đề là, Visual C# không nhận ra XPathSelectElement như một phương pháp cho XElement. Tôi đã tìm kiếm các ví dụ sử dụng cho phương pháp này, và tất cả chúng đều nói để sử dụng XElement.XPathSelectElement.

Ví dụ, tôi đã cố gắng:

x_el = new XElement("project", 
    new XElement("child", 
     new XElement("grand-child", "Hello World!") 
); 

string get_string = x_el.XPathSelectElement("child/grand-child"); 

... nhưng XPathSelectElement không được công nhận. Tôi đang làm gì sai?

+1

có bạn thêm tài liệu tham khảo cho 'System.Xml .Linq'? – Damith

+1

@JuStDaN Tôi đã viết mã. Tôi sẽ chỉnh sửa bài đăng của mình. – Dominoed

+0

@Damith Vâng, đây là cùng lớp với nơi tôi tạo XElement và lưu nó vào một tệp. – Dominoed

Trả lời

4

Bạn cần phải thêm System.Xml.XPath namespace cũng như

using System.Xml.XPath; 

sau đó thử dưới đây

x_el = new XElement("project", 
    new XElement("child", 
     new XElement("grand-child", "Hello World!") 
)); 
// XPathSelectElement method return XElement not string , use var or XElement 
XElement element = x_el.XPathSelectElement("child/grand-child"); 
string get_string = element.ToString() 

Hoặc

var get_string = x_el.XPathSelectElement("child/grand-child").ToString(); 
+0

Bạn đã đọc qua câu hỏi của tôi chưa? :/Tôi đã thử điều đó. – Dominoed

+0

Lỗi: 'System.Xml.Linq.XElement' không chứa định nghĩa cho 'XPathSelectElement' và không có phương pháp mở rộng 'XPathSelectElement' chấp nhận đối số đầu tiên của loại 'System.Xml.Linq.XElement' có thể được tìm thấy (bạn thiếu một chỉ thị bằng cách sử dụng hoặc một tham chiếu lắp ráp?) – Dominoed

Các vấn đề liên quan