我收到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
以及操作的值是什么? “修改”,“取消”,“订购”?
答案 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").
答案 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;