怎麼讀出Xml文件中某個節點、屬性的信息
待處理的Xml文件:
<?xml version="1.0" encoding='UTF-8'?> <ufinterface billtype="gl" filename="gledi" isexchange="Y" proc="add" receiver="01" replace="Y" roottag="sendresult" sender="ceec" successful="Y"> <sendresult> <billpk> </billpk> <bdocid>AAAA</bdocid> <filename>BBBB</filename> <resultcode>CCCC</resultcode> <resultdescription>DDDD</resultdescription> <content>EEEE</content> </sendresult> <sendresult> <billpk> </billpk> <bdocid>aaaa</bdocid> <filename>bbbb</filename> <resultcode>cccc</resultcode> <resultdescription>dddd</resultdescription> <content>eeee</content> </sendresult> </ufinterface>
處理目標獲取節點isexchange、billpk、resultcode、bdocid、resultdescription的節點信息,代碼如下:
private void ReadXml() { try { XmlDocument Xd = new XmlDocument(); //Xd.LoadXml(strXml); Xd.Load("E:\\Books.xml");//加載待處理的xml文件 XmlNode root = Xd.DocumentElement; string strID = string.Empty; string Xtfhz = string.Empty;//<billpk> string Fhxxbh = string.Empty;//<resultcode> string Pzbh = string.Empty;//<bdocid> string Djxx = string.Empty;//<resultdescription> //遍曆每個ufinterface節點 foreach (XmlNode node in Xd.SelectNodes("//ufinterface")) { strID = node.Attributes["isexchange"].Value; //獲取isexchange屬性的值 XmlNode RootNode = Xd.SelectSingleNode("ufinterface");//得到根節點 //得到根節點下所有名為“sendresult”子節點,是一個list集合。 XmlNodeList ChildNodes = RootNode.SelectNodes("sendresult"); //遍曆<sendresult>節點集合 foreach (XmlNode childnode in ChildNodes) { //遍曆每個<sendresult>節點中的子節點 foreach (XmlNode snode in childnode) { if (snode.Name == "billpk") { Xtfhz = snode.InnerText; MessageBox.Show("billpk=" + Xtfhz); } if (snode.Name == "bdocid") { Pzbh = snode.InnerText; MessageBox.Show("bdocresultcode") { Fhxxbh = snode.InnerText; MessageBox.Show("resultcode=" + Fhxxbh); } if (snode.Name == "resultdescription") { Djxx = snode.InnerText; MessageBox.Show("resultdescription=" + Djxx); } } } } } catch (Exception ee) { MessageBox.Show(ee.ToString()); } }
在代碼中的每個MessageBox.Show均可彈出,對應節點的信息。
最後更新:2017-04-03 12:54:19