从XML文档获取指定的节点值

我遇到了一个XML文档(使用C#)的问题,并获得所有必要的值。 我成功通过XML文档中的所有指定的XmlNodeLists,成功获取所有的XmlNode值,但是我必须得到这个XmlNodeList之外的一些值。

例如:

<?xml version="1.0" encoding="UTF-8" ?> <Element xsi:schemaLocation="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd xsd2009027_kor21.xsd" Kod="370" xmlns="http://localhost/AML/CaseInvestigationMangement/Moduli/XmlImportControls/xsdBorrow.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> /2001/XMLSchema-instance"> <ANode> <BNode> <CNode> <Example> <Name>John</Name> <NO>001</NO> </Example> </CNode> </BNode> <ID>1234</ID> <Date>2011-10-01</Date> </ANode> <ANode> <BNode> <CNode> <Example> <Name>Mike</Name> <NO>002</NO> </Example> </CNode> </BNode> <ID>5678</ID> <Date>2011-03-31</Date> </ANode> </Element> 

这是在XML文档中的每个find的节点上获取节点Name和NO值的代码:

 XmlDocument xml = new XmlDocument(); xml.LoadXml(myXmlString); //myXmlString is the xml file in string //copying xml to string: string myXmlString = xmldoc.OuterXml.ToString(); XmlNodeList xnList = xml.SelectNodes("/Element[@*]/ANode/BNode/CNode"); foreach (XmlNode xn in xnList) { XmlNode example = xn.SelectSingleNode("Example"); if (example != null) { string na = example["Name"].InnerText; string no = example["NO"].InnerText; } } 

现在我有一个问题获取ID和date的值。

就像你从CNode获取某些东西CNode你也需要为这个ANode

 XmlNodeList xnList = xml.SelectNodes("/Element[@*]"); foreach (XmlNode xn in xnList) { XmlNode anode = xn.SelectSingleNode("ANode"); if (anode!= null) { string id = anode["ID"].InnerText; string date = anode["Date"].InnerText; XmlNodeList CNodes = xn.SelectNodes("ANode/BNode/CNode"); foreach (XmlNode node in CNodes) { XmlNode example = node.SelectSingleNode("Example"); if (example != null) { string na = example["Name"].InnerText; string no = example["NO"].InnerText; } } } }