当前位置:编程学习 > C#/ASP.NET >>

c#读取xml节点值


 <BatchQueryResponse>
 <logisticProviderID>YTO</logisticProviderID> 
 <orders>
 <order>
  <mailNo>1111111111</mailNo> 
  <txLogisticID>F111231156200</txLogisticID> 
  <mailType>EXPRESS</mailType> 
  <orderStatus>SIGNED</orderStatus> 
 <steps>
 <step>
  <acceptTime>2011-09-23 19:17:27.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <name>曾文花</name> 
  <status>true</status> 
  <remark>派件扫描</remark> 
  </step>
 <step>
  <acceptTime>2011-10-03 10:28:13.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <name>手册终端收派培训</name> 
  <status>true</status> 
  <remark>PDA正常签收扫描</remark> 
  </step>
 <step>
  <acceptTime>2012-03-27 12:59:26.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <name>手持终端收派培训</name> 
  <status>true</status> 
  <remark>业务员收件</remark> 
  </step>
  </steps>
  </order> 
 <order>
  <mailNo>1234567890</mailNo> 
  <txLogisticID>DD0000002349</txLogisticID> 
  <mailType>EXPRESS</mailType> 
  <orderStatus>SIGNED</orderStatus> 
 <steps>
 <step>
  <acceptTime>2011-08-15 15:50:32.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <status>true</status> 
  <remark>装件入车扫描</remark> 
  </step>
 <step>
  <acceptTime>2011-08-17 15:15:21.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <status>true</status> 
  <remark>装件入车扫描</remark> 
  </step>
 <step>
  <acceptTime>2011-09-16 13:55:17.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <name>手册终端收派培训</name> 
  <status>true</status> 
  <remark>PDA正常签收扫描</remark> 
  </step>
 <step>
  <acceptTime>2011-09-27 14:30:38.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <name>手册终端收派培训</name> 
  <status>true</status> 
  <remark>PDA正常签收扫描</remark> 
  </step>
 <step>
  <acceptTime>2011-10-21 10:35:05.0 CST</acceptTime> 
  <acceptAddress>浙江义乌市</acceptAddress> 
  <name>周君佶</name> 
  <status>true</status> 
  <remark>派件扫描</remark> 
  </step>
 <step>
  <acceptTime>2011-11-07 14:11:40.0 CST</acceptTime> 
  <acceptAddress>浙江义乌市</acceptAddress> 
  <name>晚点(网点支线晚到,未赶上当班次车中转)</name> 
  <status>true</status> 
  <remark>留仓件入扫描</remark> 
  </step>
 <step>
  <acceptTime>2011-12-07 12:12:49.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <name>手持终端收派培训</name> 
  <status>true</status> 
  <remark>业务员收件</remark> 
  </step>
 <step>
  <acceptTime>2011-12-12 09:56:43.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <status>true</status> 
  <remark>下车扫描</remark> 
  </step>
 <step>
  <acceptTime>2012-02-24 14:15:34.0 CST</acceptTime> 
  <acceptAddress>IT部</acceptAddress> 
  <status>true</status> 
  <remark>下车扫描</remark> 
  </step>
 <step>
  <acceptTime>2012-02-29 10:48:11.0 CST</acceptTime> 
  <acceptAddress>上海市静安区</acceptAddress> 
  <status>true</status> 
  <remark>装件入车扫描</remark> 
  </step>
  </steps>
  </order>
</orders>
</BatchQueryResponse>

想实现的结果
mailno:1111111111 2011-09-23 19:17:27.0 CST 派件扫描
……
mailno:1234567890 2011-08-15 15:50:32.0 CST 装件入车扫描
…… --------------------编程问答-------------------- using System.Linq;
using System.Xml.Linq;

            XDocument doc = XDocument.Load("c:\\1.txt");
            var nodes = doc.Descendants("order");
            foreach (var item in nodes)
            {
                var vs = item.Descendants("step");
                foreach (var v in vs)
                {
                    MessageBox.Show(item.Element("mailNo").Value + ":" + 
                        v.Element("acceptTime").Value + " " +
                        v.Element("remark").Value );
                }
            }
--------------------编程问答--------------------
 XDocument doc = XDocument.Load("c:\\1.txt");

我把xml值赋给了string xml
 XDocument doc = XDocument.Load(xml);
这样不可以啊。 --------------------编程问答--------------------
		XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"c:\test.xml");
XmlNodeList orderList = xmlDoc.SelectNodes(@"//orders/order");
foreach (XmlNode order in orderList)
{
Response.Write("mailNo:" + order["mailNo"].InnerXml + " ");
foreach (XmlNode step in order.SelectNodes(@"steps/step"))
Response.Write(step["acceptTime"].InnerXml + " " + step["remark"].InnerXml + "<br/>");
Response.Write("<br/>");
}

输出:
mailNo:1111111111 2011-09-23 19:17:27.0 CST 派件扫描
2011-10-03 10:28:13.0 CST PDA正常签收扫描
2012-03-27 12:59:26.0 CST 业务员收件

mailNo:1234567890 2011-08-15 15:50:32.0 CST 装件入车扫描
2011-08-17 15:15:21.0 CST 装件入车扫描
2011-09-16 13:55:17.0 CST PDA正常签收扫描
2011-09-27 14:30:38.0 CST PDA正常签收扫描
2011-10-21 10:35:05.0 CST 派件扫描
2011-11-07 14:11:40.0 CST 留仓件入扫描
2011-12-07 12:12:49.0 CST 业务员收件
2011-12-12 09:56:43.0 CST 下车扫描
2012-02-24 14:15:34.0 CST 下车扫描
2012-02-29 10:48:11.0 CST 装件入车扫描
--------------------编程问答-------------------- xmlDoc.LoadXml("xml字符串");
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,