我有一个问题,需要使用C#遍历XML文档并获取所有必要的值。我成功地遍历了XML文档中所有指定的XmlNodeList,并成功地获取了其中所有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文档中每个找到的ANode节点中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和日期的值。
XmlNodeList xnList = xml.SelectNodes("/Element[@*]");
。在这种情况下,我得到了id和date的值,但是在foreach (XmlNode node in CNodes)
这一行遇到了问题。 - Megaif (example != null)
中使用Console.WriteLine(id + " " + date + " " + na + " " + no);
,并得到了以下结果:1234 2011-10-01 John 001和1234 2011-10-01 Mike 002 - Mega