从XML文档中读取第一个节点

8

我收到了一个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>

现在,我想找出第二个节点是否为Event1Event2Event3,并且操作值是什么,例如"Amended"、"Cancelled"、"Ordered"?

3个回答

9
你可以尝试。
        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
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

从我的记忆中来看,你可以检查XmlDocument对象上的DocumentElement.FirstChild.Name,以检索Message元素的第一个子元素的名称。

可以使用DocumentElement.FirstChild.GetAttribute("Operation")读取Operation属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接