2011-02-08 31 views
5

Tôi nhận được thông báo trong chuỗi XML; mà tôi tải vào XmlDocument; nhưng nút thứ hai là khác nhau mỗi lần; Tôi đã đưa ra ví dụ dưới đây là ba ví dụ:Đọc First Node từ XMLDocument

<Message> 
    <Event1 Operation="Amended" Id="88888">Other XML Text</Event1> 
</Message> 
<Message> 
    <Event2 _Operation_="Cancelled" Id="9999999"> Other XML Text </Event2> 
</Message> 
<Message> 
    <Event3 Operation="Cancelled" Id="22222"> Other XML Text </Event3> 
</Message> 

Bây giờ, tôi muốn tìm hiểu xem nút thứ hai là Event1 hoặc Event2 hoặc Event3 và cũng giá trị của hoạt động ví dụ là những gì "Đã sửa đổi", "Đã hủy", "Đã đặt hàng"?

Trả lời

8

Bạn có thể thử

 XmlDocument xml = new XmlDocument(); 
     xml.LoadXml("<Message><Event1 Operation=\"Amended\" Id=\"88888\"> Other XML Text</Event1></Message>"); 
     Debug.WriteLine(xml.DocumentElement.ChildNodes[0].Name); 
     Debug.WriteLine(xml.DocumentElement.ChildNodes[0].Attributes["Operation"].Value); 
1
XmlDocument oDoc = XmlDocument.Load(yourXmlHere); 
// Your message node. 
XmlNode oMainNode = oDoc.SelectSingleNode("/Message"); 
// Message's first subnode (Event1, Event2, ...) 
XmlNode oEventNode = oMainNode.ChildNodes[0]; 
// Event1, Event2, ... 
string sEventNodeName = oEventNode.Name; 
// Value of operation attribute. 
string sOpValue = oEventNode.Attributes["Operation"].Value; 
2

Off đỉnh đầu của tôi, bạn có thể kiểm tra DocumentElement.FirstChild.Name trên đối tượng XmlDocument để lấy tên của phần tử con đầu tiên của phần tử tin nhắn.

Thuộc tính hoạt động có thể được đọc bằng DocumentElement.FirstChild.GetAttribute("Operation").