2009-08-06 56 views
17

Bản sao: Đây là bản sao của Best practices to parse xml files with C#? và nhiều mục khác (xem https://stackoverflow.com/search?q=c%23+parse+xml). Vui lòng đóng nó và không trả lời.Phân tích cú pháp tài liệu XML trong C#


Làm cách nào để phân tích cú pháp tài liệu XML từ dưới lên trong C#?

Ví dụ:

<Employee> 
    <Name> Test </name> 
    <ID> 123 </ID> 
<Employee> 
<Company> 
    <Name>ABC</company> 
    <Email>[email protected]</Email> 
</company> 

Giống như những có rất nhiều nodes..I cần phải bắt đầu phân tích cú pháp từ dưới lên like..first phân tích <company> và sau đó và vì vậy on..How đổi đi về điều này trong C# ?

+0

Tôi thích [XDocument] của Linq (http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx). – DanDan

+0

Bạn có thể sử dụng lớp [XmlSerializer] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx). Nó có lớp của bạn và có thể đọc/ghi nó vào các tập tin XML thực sự dễ dàng. – speps

+0

kiểm tra System.Xml Namespace http://msdn.microsoft.com/en-us/library/system.xml%28VS.80%29.aspx – nWorx

Trả lời

60

Hãy thử điều này:

XmlDocument doc = new XmlDocument(); 
doc.Load(@"C:\Path\To\Xml\File.xml"); 

Hoặc cách khác nếu bạn có XML trong một chuỗi sử dụng phương pháp LoadXml.

Một khi bạn có nó được nạp, bạn có thể sử dụng SelectNodesSelectSingleNode để truy vấn giá trị cụ thể, ví dụ:

XmlNode node = doc.SelectSingleNode("//Company/Email/text()"); 
// node.Value contains "[email protected]" 

Cuối cùng, lưu ý rằng XML của bạn không hợp lệ vì nó không chứa một nút gốc duy nhất. Nó phải giống như thế này:

<Data> 
    <Employee> 
     <Name>Test</Name> 
     <ID>123</ID> 
    </Employee> 
    <Company> 
     <Name>ABC</Name> 
     <Email>[email protected]</Email> 
    </Company> 
</Data> 
Các vấn đề liên quan