从XMLDocument中读取第一个节点

时间:2011-02-08 16:05:15

标签: c# xml xmldocument

我收到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 个答案:

答案 0 :(得分:8)

你可以尝试

        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 :(得分:2)

在我的头顶,您可以检查DocumentElement.FirstChild.Name对象上的XmlDocument以检索Message元素的第一个子元素的名称。

可以使用DocumentElement.FirstChild.GetAttribute("Operation").

读取Operation属性

答案 2 :(得分: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;