待处理的Xml文件:
处理目标获取节点 isexchange、billpk、resultcode、bdocid、resultdescription的节点信息,代码如下:<?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>
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("bdocid=" + Pzbh);
}
if (snode.Name == "resultcode")
{
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均可弹出,对应节点的信息。