2011-02-08 16 views
5

Recibo un mensaje en cadena XML; que cargo en XmlDocument; pero el segundo nodo es diferente cada vez; He dado ejemplo continuación se presentan tres ejemplos:Lea el primer nodo de 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> 

Ahora, quiero averiguar si segundo nodo es Event1 o Event2 o Event3 y también lo que es el valor de la operación, por ejemplo, "Enmendado", "Cancelado", "Ordenado"?

Respuesta

8

Usted puede intentar

 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

De la parte superior de la cabeza, se puede comprobar la DocumentElement.FirstChild.Name en el objeto XmlDocument para recuperar el nombre del primer elemento hijo del elemento de mensaje.

El atributo de funcionamiento se puede leer usando DocumentElement.FirstChild.GetAttribute("Operation").

Cuestiones relacionadas