JS操作XMLDOM(遍历和打印)

 

/*
说明:在javaweb工程中,很多后台服务返回的都是XML字符串,然后前端把XML字符串再转换成XMLDOM对象,然后操作XMLDOM对象获取相关的值。

这个组件,不是针对某个节点使用的,而是作用域整个XMLDOM文档对象整体上,总体来说分两大部分:

   1.打印XMLDOM对象的结构(即包含哪些子节点,子节点的名称和值,以及子节点包含的所有属性)。

   2.打印XMLDOM对象的全部文本,类似于XMLDOM对象的toString()方法一样,可以打印所有内容:包括节点名称,节点值,节点属性以及注释。


其他:此组件主要介绍是三个方法:
   1.createXmlDOM
   2.JSLogger.log
   3.JSLogger.logXML
具体是方法说明和使用方法,详见下边。
*/

 

 

 #js脚本代码(完整代码请看附件)

 

/*
* 将字符串转化成XMLDom对象 
* @param xmlStr xml字符串
*/
function createXmlDOM(xmlStr){
	var xmlDom = null;
	if (navigator.userAgent.indexOf("MSIE") > 0){//IE only
		xmlDom=new ActiveXObject("Microsoft.XMLDOM");
		xmlDom.async="false";
		xmlDom.loadXML(xmlStr);
	 }else{//FF,Chrome 等
		 xmlDom=(new DOMParser()).parseFromString(xmlStr,"text/xml");
	  }
	return xmlDom;
}

	//TODO 测试数据1
	var xmlString  =  '<TaskinstanceInfo name="djd" sex="boy">';
	xmlString+='<pkid>2919</pkid>';
	xmlString+='<taskdefineId>2</taskdefineId>';
	xmlString+='<taskdefineName>林业资源</taskdefineName>';
	xmlString+='<enodeTaskinsId>0</enodeTaskinsId>';
	xmlString+='<taskStatus>COMPLETE</taskStatus>';
	xmlString+='<startTime>2012-07-10 15:34:12.0 CST</startTime>';
	xmlString+='<lastCompleteTime>2012-07-11 12:00:00.0 CST</lastCompleteTime>';
	xmlString+='<filePath>D:\\upload\\test文件</filePath>';
	xmlString+='<fileSize>102400</fileSize>';
	xmlString+='<fileFormat>E00</fileFormat>';
	xmlString+='<processInfo>中心处理中</processInfo>';
	xmlString+='<childsss><son><sex>boy</sex><age>23</age></son></childsss>';
	xmlString+='<transportType>FTP</transportType>';
	xmlString+='<dataType>SPATIALDATA</dataType>';
	xmlString+='<taskSourceIp>172.16.10.16</taskSourceIp>';
	xmlString+='<exchangeNodeId>2</exchangeNodeId>';
	xmlString+='<taskSourceDesc>null</taskSourceDesc>';
	xmlString+='<taskCreaterId>4</taskCreaterId>';
	xmlString+='<taskCreaterName>Tite</taskCreaterName>';
	xmlString+='<taskCreaterDept>国土资源厅</taskCreaterDept>';
	xmlString+='<localSourceId>d388f9d1-9453-4313-b1a2-c99fe1f84856</localSourceId>';
	xmlString+='<localCatalogId>0c091601-eb5c-4747-85ee-046c358fa0ac</localCatalogId>';
	xmlString+='<tranFileFormat>GDB</tranFileFormat>';
	xmlString+='<sequenceState>VALID</sequenceState>';
	xmlString+='<orderIndex>3</orderIndex>';
xmlString+='</TaskinstanceInfo>';


	//TODO 测试数据2
var xml ="";
//xml += '<?xml version="1.0" encoding="UTF-8" ?>';
xml += '<list>';
	xml += '<TaskinstanceActivity name="djd" sex="boy">';
		xml += '<pkid>62</pkid>';
		xml += '<!-- 任务实例ID -->';
		xml += '<taskinstanceId>1</taskinstanceId>';
		xml += '<!-- 任务类型-->';
		xml += '<taskType>EXCHANGENODEUPLOADxml</taskType>';
		xml += '<!-- 交换节点ID -->';
		xml += '<exchangeNodeId>3</exchangeNodeId>';
		xml += '<!-- 活动状态 -->';
		xml += '<activityStatus>DOWNLOAD_RECEIVEBROADCAST</activityStatus>';
		xml += '<!-- 处理人员ID -->';
		xml += '<userId  name="djd" sex="boy">43</userId>';
		xml += '<!-- 处理人员名称 -->';
		xml += '<userName><son><sex>boy</sex><age>23</age></son></userName>';
		xml += '<!-- 处理信息 -->';
		xml += '<processInfo>数据上传任务启动</processInfo>';
		xml += '<!-- 消息方向 -->';
		xml += '<messageDirection>EXCHANGENODE2CENTER</messageDirection>';
		xml += '<!-- 任务活动类型 -->';
		xml += '<activityType>BUSINESS</activityType>';
		xml += '<!-- 活动创建时间 -->';
		xml += '<activityDate>2012-07-14 21:12:00.0 CST</activityDate>';
		xml += '<!-- 消息体,消息体内容未示例,不代表真实数据 -->';
		xml += '<messageBody>{id:1, name: "Tite"}</messageBody>';
		xml += '<!-- 该流程是否成功执行, true表示成功, false表示失败 -->';
		xml += '<activitySucceed>true</activitySucceed>';
		xml += '<!-- 状态,VALID(有效),INVALID(无效) -->';
		xml += '<sequenceState>bbbbbbbbbbb</sequenceState>';
		xml += '<!-- 序号 -->';
		xml += '<orderIndex>aaaaaaaaaaaaa</orderIndex>';
	xml += '</TaskinstanceActivity>';
	xml += '<TaskinstanceActivity name="djd" sex="boy">';
		xml += '<messageDirection>AAAAAAAAAA</messageDirection>';
		xml += '<messageBody  name="djd" sex="boy">BBBBBBBBB</messageBody>';
		xml += '<activitySucceed>CCCCCCCC</activitySucceed>';
		xml += '<sequenceState>DDdddddddd</sequenceState>';
		xml += '<orderIndex>EEEEEEEEEEEEe</orderIndex>';
	xml += '</TaskinstanceActivity>';
xml += '</list>';


	var domObj2 = createXmlDOM(xmlString);
	JSLogger.logXML(domObj2);

	var domObj = createXmlDOM(xml);
	JSLogger.logXML(domObj);

	var first = domObj.getElementsByTagName("TaskinstanceActivity")[0];
	JSLogger.log(first);
	
	var first1 = domObj.getElementsByTagName("TaskinstanceActivity")[0];
	JSLogger.logXML(first1);
 

 

 

 

 

 

附件图片是效果图:上部分是打印XML的结构,下半部是打印XML文档的全部内容。

 

rar附件是演示的源码。

 

 

 

 

 

 

 

 

 

愤怒的coder - XML是王道。

 

你可能感兴趣的:(xml解析,创建xml,xml遍历,xml.toString())