例子说明
循环遍历xml文件中的信息包括:节点名称(一个),节点的串联值(一个),节点的属性(多个)
Xml文件
<?xml version="1.0" encoding="utf-8" ?>
<Computers><Computer ID="11111111" Description="Made in China"><name>Lenovo</name><price>5000</price></Computer><Computer ID="2222222" Description="Made in USA"><name>IBM</name><price>10000</price></Computer>
</Computers>
C#嵌套循环代码
private static void optimizeGetXMLInformation1(string xmlFilePath){try{//初始话一个XMl实例XmlDocument myXmlDoc = new XmlDocument();//加载XMl文件(xmlFilePath:为XMl的路径)myXmlDoc.Load(xmlFilePath);//获取节点中的第一个子节点var rootNodeChild = myXmlDoc.FirstChild;if(rootNodeChild != null){ GetNodeInformation(rootNodeChild);}}catch (Exception ex){Console.WriteLine(ex.ToString());}}private static void GetNodeInformation(XmlNode xmlNode) {while (xmlNode != null){//输出节点名称及串联值Console.WriteLine($"节点:{xmlNode.Name} = {xmlNode.InnerText}");//获得该节点的属性集合XmlAttributeCollection xmlNodeattributeCol = xmlNode.Attributes;if (xmlNodeattributeCol != null){foreach (XmlAttribute attri in xmlNodeattributeCol){//输出节点包含的属性名称与属性值Console.WriteLine($"属性:{attri.Name} = {attri.Value}");}}//获取该节点的第一个子节点var xmlNodeChild = xmlNode.FirstChild;//判断节点的子节点是否存在,第一个子节点都不存在的话,那说明该节点没有子节点if (xmlNodeChild != null){//子节点存在就集训循环输出该节点的信息GetNodeInformation(xmlNodeChild);}//节点循环到下一个节点xmlNode = xmlNode.NextSibling;}}