Xml报文格式如下所示:
 
<body>
<FILENAME></FILENAME>
<records>20</records>
<record>
<ODYWLZBZ>01</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>116000</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>03331900040084502</ODDFACCT>
<ODJDACNA>上海xxxxxxx有限公司</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320099900N400000387</ODTRANNO>
<ODZHAIYA></ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>2000</ODCLZCZE>
<ODCHAFEE>4</ODCHAFEE>
<ODDFACCT>320006608018170046228</ODDFACCT>
<ODJDACNA>江苏**管理有限公司</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000036</ODTRANNO>
<ODZHAIYA>保证金-雨花梅山</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>01</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>5000</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>0133102800000019</ODDFACCT>
<ODJDACNA>支付宝</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320099900N330001644</ODTRANNO>
<ODZHAIYA></ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>4956</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>622452011100064</ODDFACCT>
<ODJDACNA>蒋**</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000028</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>11400</ODCLZCZE>
<ODCHAFEE>8</ODCHAFEE>
<ODDFACCT>6228480399624888679</ODDFACCT>
<ODJDACNA>车**</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000041</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>100000</ODCLZCZE>
<ODCHAFEE>8</ODCHAFEE>
<ODDFACCT>7321010182600073879</ODDFACCT>
<ODJDACNA>南京**工程研究院</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000034</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>252</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>6230660131001657577</ODDFACCT>
<ODJDACNA>杰</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000040</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record> <ODYWLZBZ>02</ODYWLZBZ>……………………………………
 
/**
函数说明:
获取循环节点值,并保存在二维数组;说明:保存在二维数组为了方便展示;
参数说明:
Xml为传入的xml报文,node为需要获取的循环节点值“record”;
*/
function nodesParse(xml,node){
Trc.Info("循环获取record");
var xmlDom=new ActiveXObject("Microsoft.XMLDOM") ;
if(xmlDom == null){
Trc.Info("create xml object failure");
return "failure";
}
try{
xmlDom.async = "false";
xmlDom.loadXML(xml) ;
Trc.Info("追踪xml"+xml);
var elements = xmlDom.getElementsByTagName("rsp");// 获取根节点集合;
Trc.Info("elements ="+elements+"length="+elements.length);
var body=elements[0].getElementsByTagName("body");//获取body节点集合;
Trc.Info("body "+body+"length="+body.length);
var result=body[0].getElementsByTagName(node); //获取根节点下的某子节点集合;
Trc.Info("result ="+result+"length="+result.length);
var col=[];
for(var i=0;i<result.length;i++){ //循环获取每一个record的子节点文本值;
Trc.Info("into the first for loop ");
var row=[];
var ChiledNodes=result[i].childNodes;//第I个记录record的所有子节点;
Trc.Info("ChiledNodes="+ChiledNodes+"ChiledNodes length="+ChiledNodes.length);
for(var j=0;j<ChiledNodes.length;j++){ // 循环获取每个子节点的值;
Trc.Info("into the second for loop ");
var test=ChiledNodes[j].childNodes;
if(test.length>0){
row[j]=ChiledNodes[j].childNodes[0].nodeValue;
Trc.Info("row["+j+"]="+row[j]);
}else{
row[j]="";
Trc.Info("row["+j+"]="+row[j]);
}
 
}
Trc.Info("out of the second for loop");
 
col[i]=row; // col保存所有的记录;
Trc.Info("out of the second for loop");
}
Trc.Info("所有的记录col="+col);
return col;
}catch(err){
Trc.Info("xml : " + xml);
Trc.Info("tagname : " + node);
Trc.Error("runtime err: " + err.description);
}
 
}
 
- /**
函数说明:
解析xml报文的函数,并获取元素值;
参数说明:
Xml为传入需要解析的xml报文体;target为需要获取的元素节点;
*/
function xmlParse(xml,target){
 
Trc.Info("MsgParse.js xmlParse");
var xmlDom=new ActiveXObject("Microsoft.XMLDOM") ;
if(xmlDom == null){
Trc.Info("create xml object failure");
return "failure";
}
try{
xmlDom.async = "false";
xmlDom.loadXML(xml) ;
var elements = xmlDom.getElementsByTagName("rsp");
var value = elements[0].getElementsByTagName(target)[0].firstChild.nodeValue;
return value;
}catch(err){
Trc.Info("xml : " + xml);
Trc.Info("tagname : " + target);
Trc.Error("runtime err: " + err.description);
}
return "failure";
}
 
 

如何获取xml循环体报文内容的更多相关文章

  1. 获取XML数据

    http://www.w3school.com.cn/xml/xml_elements.asp <?xml version="1.0" encoding="gb23 ...

  2. getResources().getXml()获取xml

    获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是 ...

  3. 使用GridView来获取xml文件数据

    在任何一个系统中,数据的读取和编辑都是至关重要的.无论你是CS还是BS,都需要对数据进行操作.其实 我们可以发现,很多软件和系统最终都是对于数据库中数据的处理.之前在CS的学习过程中我们接触到了很多 ...

  4. .NetCore获取json文件配置内容

    .netcore中的数据配置及内容用了json文件代替了之前framework的xml文件,那么json中的数据该怎么获取呢?下面讲解json文件在.net core中的获取方法. 首先,新建一个.n ...

  5. WebService,ASMX文件使用XML格式数据传递参数、验证与获取XML格式返回值的一种方式

    1:首先WebService方法定义,每个方法定义两个参数,一个用于验证权限,string格式的XML文本用于传输数据.最终目的实现,WebService方法,验证权限,获取XML数据,处理之后返回X ...

  6. 使用dom解析器对xml文档内容进行增删查改

    直接添代码: XML文档名称(one.xml) <?xml version="1.0" encoding="UTF-8" standalone=" ...

  7. 转 使用utl_http获取某个http页面内容

    #########1.ACL详细解释: 11g 对于XDB  UTL_HTTP or others package 的权限管控进一步加强,如果需要使用到XDB 以下包 UTL_TCP, UTL_SMT ...

  8. PHP生成和获取XML格式数据

    在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的X ...

  9. XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)

    1.XML 格式规范: ① 必须有一个根元素 ② 不可有空格.不可以数字或.开头.大小写敏感 ③ 不可交叉嵌套 ④ 属性双引号(浏览器自动修正成双引号了) ⑤ 特殊符号要使用实体 ⑥ 注释和HTML一 ...

随机推荐

  1. unity3d之 C# WaitFOrSeconds()

    学习unity3d不久.在使用WaitFOrSeconds()时,遇到了不少麻烦,故记录,以警示后人. 首先介绍C#和javascript 在使用它有非常大的差别. javascript能够直接使用 ...

  2. python的时间差计算

    import time start = time.clock() #当中是你的程序 elapsed = (time.clock() - start) print("Time used:&qu ...

  3. docker的安装,使用

    1:安装:https://blog.csdn.net/yx_222/article/details/80936757 sudo apt-get install docker.io 2:  使用dock ...

  4. Pandas之Dropna滤除缺失数据

    import pandas as pd import numpy as np from numpy import nan as NaN 一.处理Series对象 通过dropna()滤除缺失数据 fr ...

  5. iOS9 & iOS10 & iOS11 HTTP 不能正常使用的解决办法

    iOS9 & iOS10 & iOS11 HTTP 不能正常使用的解决办法 xcode  ios 291.4k 次阅读  ·  读完需要 8 分钟 54 今天升级Xcode 7.0 b ...

  6. e.printStackTrace() ; 是什么意思?

    catch(Exception e){e.printStackTrace() ;} 当try语句中出现异常是时,会执行catch中的语句,java运行时系统会自动将catch括号中的Exception ...

  7. Qt计时器

    在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器:一种是使用QTimer类.定时器的精确性依赖于操作系统和硬件,大多数平台支持20ms的精确度. ■.QObject类的定时器QObje ...

  8. centos 专题-各种配置应有尽有

    你想要的在这里都能得到解决: http://www.linuxidc.com/topicnews.aspx?tid=14

  9. js值类型和引用类型的区别

    1:赋值 值类型的赋值:直接将存储的数据赋值一份进行赋值,两份数据在内存中是完全独立的. 引用类型赋值:引用类型的赋值的时候,是将变量中的存储的地址赋值一份单独存储,但是两个变量中修改其中一个对象,另 ...

  10. C#:文件、byte[]、Stream相互转换

    一.byte[] 和 Stream /// <summary> /// byte[]转换成Stream /// </summary> /// <param name=&q ...