Читать первый узел из XMLDocument - PullRequest
6 голосов
/ 08 февраля 2011

Я получаю сообщение в XML-строке;что я загружаю в 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>

Теперь я хочу выяснить, является ли второй узел Event1 или Event2 или Event3, а также какое значение операции, например,"," Отменено "," Заказано "?

Ответы [ 3 ]

8 голосов
/ 08 февраля 2011

Вы можете попробовать

        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);
2 голосов
/ 08 февраля 2011

Вверху моей головы вы можете проверить DocumentElement.FirstChild.Name на объекте XmlDocument, чтобы получить имя первого дочернего элемента элемента Message.

Атрибут Operation можно прочитать, используяDocumentElement.FirstChild.GetAttribute("Operation").

1 голос
/ 08 февраля 2011
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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...