XmlNodeList students = doc.DocumentElement.ChildNodes;//Student节点集合

foreach (XmlNode stu in students)

{

    XmlElement element = (XmlElement)stu;

    string stuId = element.GetAttribute("StuID");

    XmlNode nameNode = element.SelectSingleNode("StuName");//获取Person节点的Name节点

    string name = nameNode.InnerText;

    Console.WriteLine(stuId + "," + name);

}

案例xml文件

又一个解析xml文件的方法:

public static void WriteTOXmlStatusLog(string responseStr)
{ string pathConfig = App.GetSetting("TracePath");
if (!string.IsNullOrWhiteSpace(pathConfig))
{
try
{
Log4NetTraceListener log = new Log4NetTraceListener(pathConfig + @"\UserInterface");
var doc = new System.Xml.XmlDocument();
doc.LoadXml(responseStr);
string error = "";
var errorNode = doc.SelectSingleNode("/returnsms/errorstatus/error");
if (errorNode != null)
{
error = errorNode.InnerText;
}
if (string.IsNullOrWhiteSpace(error))
{
XmlNodeList callboxList = doc.DocumentElement.ChildNodes;
foreach (XmlNode item in callboxList)
{
XmlElement element = (XmlElement)item;
string mobile= element.GetElementsByTagName("mobile")[].InnerText;
//string mobile = element.SelectSingleNode("/statusbox/mobile").InnerText;
string taskid = element.GetElementsByTagName("taskid")[].InnerText;
string status = element.GetElementsByTagName("status")[].InnerText;
string receivetime = element.GetElementsByTagName("receivetime")[].InnerText;
string extno = element.GetElementsByTagName("extno")[].InnerText;
string errorcode = element.GetElementsByTagName("errorcode")[].InnerText;
log.WriteLine("获取状态报告返回xml信息:" + "mobile:" + mobile + ",taskid:" + taskid + ",status:" + status + ",receivetime:" + receivetime + ",errorcode:" + errorcode + ",extno:" + extno);
} }
else
{
string remark = doc.SelectSingleNode("/returnsms/errorstatus/remark").InnerText;
log.WriteLine("获取状态报告返回xml信息:error:" + error + ",remark:" + remark);
} }
catch (Exception ex)
{ throw new Exception("获取xml状态报告信息写入日志出错:" + ex);
}
}

xml文件:

//错误时的返回
<?xml version="1.0" encoding="utf-8" ?>
<returnsms>
<errorstatus>
<error></error>-------------错误码
<remark>用户名或密码不能为空</remark>-------------错误描述
</errorstatus>
</returnsms> //正确时的返回
<?xml version="1.0" encoding="utf-8" ?>
<returnsms>
<statusbox>
<mobile></mobile>-------------对应的手机号码
<taskid></taskid>-------------同一批任务ID
<status></status>---------状态报告----:发送成功,:发送失败
<receivetime>-- ::</receivetime>-------------接收时间
<errorcode>DELIVRD</errorcode>-上级网关返回值,不同网关返回值不同,仅作为参考
<extno></extno>--子号,即自定义扩展号
</statusbox>
<statusbox>
<mobile></mobile>
<taskid></taskid>
<status></status>
<receivetime>-- ::</receivetime>
<errorcode></errorcode>
<extno></extno>

Xml文件操作的其中一个使用方法:的更多相关文章

  1. 如何:执行大型 XML 文档的流式转换 大XML文件解析入库的一个方法

    w Parsing Huge XML Files Incrementally http://pclib.github.io/safari/program/python-cookbook/Text/ch ...

  2. 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!

    我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...

  3. 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml

     数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...

  4. C# XML文件操作

    C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...

  5. PHP对XML文件操作之属性与方法讲解

    DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definit ...

  6. XML文件操作之dom4j

    能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的 所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/ dom4 ...

  7. XML文件操作类--创建XML文件

    这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...

  8. C# XML文件操作类XmlHelper

    类的完整代码: using System;using System.Collections;using System.Xml; namespace Keleyi.Com.XmlDAL{public c ...

  9. SpringBatch Sample (三)(XML文件操作)

    前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是 ...

随机推荐

  1. Appium自动化时,如何快速获得Android app的包名和启动页

    在app自动化的时候,经常被问道如何知道app的包名和启动页名称.这个问题很简单: 1. 最直接的方式,去问开发啊,他们告诉你app的包名和启动页. 2. 如果你比较腼腆,又能看到/懂代码,自己把代码 ...

  2. Android分享中,如何过滤指定的应用,并且对不同的分享方式发送不同的内容?

    网上找到的一篇关于: 针对不同的应用,使用不同的方式的文章.原文地址 String contentDetails = ""; String contentBrief = " ...

  3. flash cs6导入某些mp3不能的解决办法

    安装最新的quicktime 另外还有一个很恶心的办法,可以不用装quicktime. 1.用adobe audio打开一个没问题的mp3, 2.再打开有问题的MP3,全选,复制: 3.切换到没问题的 ...

  4. 【1】第一次电话面试---上海EMC

    时间是2016//11月,投的是上海的EMC2公司的JavaWeb开发岗,第一次接到的电话面试,问的题目很基础基础,很遗憾,本人在掌握的太不好,回答的很乱,目测定挂.下面记下HR问的问题及回答. 首先 ...

  5. 关于动态生成data组件

    /*! * WeX5 v3 (http://www.justep.com) * Copyright 2015 Justep, Inc. * Licensed under Apache License, ...

  6. ServletContext总结

    今天我们学习的是ServletContext的应用. WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. ServletConfig对 ...

  7. 钉钉的收费 [钉钉深圳研发团队 denny/2016.01.06/ 59888745@qq.com]

    普通用户(个人) 团队 企业 1.免费额度为每月通话100分钟.每天发DING 5次. 1.   每月通话300分钟,每天发DING   10次. 2.   群组最多可达1500人 1.   该公司所 ...

  8. ruby中proc和lambda的return区别

    学习ruby有一段时间了,但是我看了好几遍proc和lambda的return区别的区别讲解,始终没明白到底什么区别,今天上午又看,终于感觉是茅塞顿开有点领悟了 一下内容部分来自<<rub ...

  9. ubuntu Server 14 自动更新

    https://help.ubuntu.com/stable/serverguide/automatic-updates.html http://spin.atomicobject.com/2014/ ...

  10. 转载自@机智的新手:使用Auto Layout中的VFL(Visual format language)--代码实现自动布局

    本文将通过简单的UI来说明如何用VFL来实现自动布局.在自动布局的时候避免不了使用代码来加以优化以及根据内容来实现不同的UI. 一:API介绍 NSLayoutConstraint API 1 2 3 ...