Xml文件操作的其中一个使用方法:
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文件操作的其中一个使用方法:的更多相关文章
- 如何:执行大型 XML 文档的流式转换 大XML文件解析入库的一个方法
w Parsing Huge XML Files Incrementally http://pclib.github.io/safari/program/python-cookbook/Text/ch ...
- 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!
我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...
- 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...
- C# XML文件操作
C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...
- PHP对XML文件操作之属性与方法讲解
DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definit ...
- XML文件操作之dom4j
能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的 所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/ dom4 ...
- XML文件操作类--创建XML文件
这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...
- C# XML文件操作类XmlHelper
类的完整代码: using System;using System.Collections;using System.Xml; namespace Keleyi.Com.XmlDAL{public c ...
- SpringBatch Sample (三)(XML文件操作)
前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是 ...
随机推荐
- Nginx-uri、request_uri、document_uri之间的区别
在nginx中有几个关于uri的变量,包括$uri.$request_uri.$document_uri,下面看一下他们的区别 :$request_uri: /stat.php?id=1585378& ...
- Abstract和Virtual和interface , 派生类中重写 override / new关键字
http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html C#中Abstract和Virtual 在C#的学习中,容易混淆virtua ...
- ES6转换为ES5
1.静态函数 1.什么是静态函数 静态函数最重要的就是不用创建一个实例变量就可以进行调用,在C++里面,无法访问this对象, 而在JS里面由于js的this对象支持,是可以访问this对象,只是th ...
- NeHe OpenGL教程 第四十八课:轨迹球
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 样例20-汽车SHOW
观看样例点这里 素材下载 1.设置场景大小为400*3002.执行:文件->导入->导入到库,选择需要的汽车图片文件,将其导入到库面板中3.按照同样的方式,在库面板中导入所需的背景音乐文件 ...
- Oracle死锁产生的原因和解决办法
如果有两个会话,每个会话都持有另一个会话想要的资源,此时就会发生死锁.用下面实验来说明死锁的产生原因和解决办法.SESSION1:SQL> create table t2 as select * ...
- 用ping命令来模拟traceroute的功能
ping -n 1 -r 9 qq.com 正在 Ping qq.com [163.177.65.160] 具有 32 字节的数据:来自 163.177.65.160 的回复: 字节=32 时间=11 ...
- Codeforces 723d [暴力dfs]
/* 不要低头,不要放弃,不要气馁,不要慌张. 题意: 给n,m和k,n和m为所给矩阵的高和宽.k是要求最多剩下的湖的数量. 在所给的矩阵中,*代表陆地,.代表水. 湖的定义是一片连续的水(上下左右四 ...
- ArcGIS Viewer for Flex中引入google map作底图
在ArcGIS Viewer for Flex开发中,经常需要用到google map作为底图,我们不能通过ArcGIS Viewer for Flex - Application Builder轻易 ...
- pytion学习1
个人感觉学习一门新语言,简单的语法懂一点足矣.接下来就是编程.读懂别人程序的每一句,理解每一句的意义. #Filename:MyAddressBook.py import cPickle as p i ...