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文件的读写操作.实例流程是 ...
随机推荐
- 【Unity3D基础教程】给初学者看的Unity教程(零):如何学习Unity3D
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点推荐.谢谢! Unity3D有什么优势 Unity3D是一个跨 ...
- tomcat内存溢出 PermGen space
1. java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出. PermGen space的全称是Permanent Gene ...
- MapReduce的输入输出
mapper和reducer的划分 mapper的数量等于输入文件被划分成的分块数,这取决于输入文件的大小以及文件块的大小.一个map操作只处理一个输入分片.运行作业的客户端通过调用getSplits ...
- 如何解决虚拟机克隆导致"Bringing up interface eth0: Error: No suitable device found: no device found for connection 'System eth0'."
在VMware的虚拟机中克隆CentOS,在重启网卡的时候报错: Bringing up interface eth0: Error: No suitable device found: no de ...
- AndroidImagePicker 的使用
github地址 https://github.com/easonline/AndroidImagePicker 效果图
- 大师教你<部落冲突>如何切换账号
前提申请两个谷歌账号,账号一和账号二,想要切换账号,只需清除部落冲突在手机上的数据即可.详情请看下文! 1. 第一次登陆,进入游戏后 2. 没有谷歌商店的童鞋,下载谷歌安装器(一键修复)以及VPNFQ ...
- bzoj2006 noi2010 超级钢琴 主席树 + 优先队列
Time Limit: 20 Sec Memory Limit: 552 MBSubmit: 2435 Solved: 1195 Description 小 Z是一个小有名气的钢琴家,最近C博士送 ...
- 写了一个自动打包并发布到tomcat的脚本
#!/bin/sh #获取tomcat的PID tomcat_pid=` | awk '{print $1}'`#判断tomcat是否结束,未结束则kill掉 if [ -z $tomcat_pid ...
- Shell脚本中执行sql语句操作mysql
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...
- work flow