2011-02-08 18 views
5

Ricevo il messaggio nella stringa XML; che carico in XmlDocument; ma il secondo nodo è diverso ogni volta; Ho dato esempio di seguito sono tre esempi:Leggere il primo nodo da 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> 

Ora, voglio sapere se secondo nodo è Event1 o Event2 o Event3 e anche quello che è il valore di funzionamento per esempio "Modificato", "Cancellato", "Ordinato"?

risposta

8

Si può provare

 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

Fuori della parte superiore della mia testa, si potrebbe verificare il DocumentElement.FirstChild.Name sull'oggetto XmlDocument per recuperare il nome del primo elemento figlio dell'elemento Messaggio.

L'attributo funzionamento può essere letto utilizzando DocumentElement.FirstChild.GetAttribute("Operation").