/*
说明:在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是王道。
- 大小: 27.7 KB
分享到:
相关推荐
在JavaScript中,处理XML通常涉及DOM(Document Object Model)接口,而jQuery提供了一套方便的API来操作DOM。 在jQuery 1.5中,遍历XML节点属性主要通过以下方法实现: 1. **jQuery.parseXML()**:这是jQuery提供...
2. **访问XML节点**:加载XML文档后,我们可以通过DOM API访问和操作XML文档中的各个节点。每个节点都有自己的属性,如`nodeName`、`nodeValue`和`childNodes`等。例如,获取根元素可以这样写: ```javascript var...
在这个主题中,“xmldom解析”主要涉及在服务器端和客户端使用DOM解析XML数据的技术。 1. **DOM解析原理**: - DOM解析器将XML文档转化为内存中的树形结构,称为DOM树。每个节点代表XML文档的一部分,如元素、属性...
在JavaScript中,我们可以使用DOM(Document Object Model)接口来访问和操作这些节点。 1. DOM API:DOM是HTML和XML文档的标准表示,它将文档转化为一个由节点构成的树形结构。JavaScript通过DOM API提供了一系列...
jQuery 是一个轻量级的 JavaScript 库,它提供了方便的 API 来简化 DOM 操作、事件处理和 AJAX 请求,包括对 XML 的处理。 **1. 引入 jQuery** 首先,确保在 HTML 页面中引入了 jQuery 库。通常,这可以通过在 `...
通过这些实践,你可以深入理解DOM模型,学会如何在实际项目中遍历和操作XML文档。DOM允许开发者动态地创建、修改或查询XML文档,是XML应用程序中不可或缺的一部分。在实际开发中,DOM解析器通常与JavaScript、Java、...
对于初学者,理解DOM遍历的基本概念至关重要。`EnumFormVal`可能是一个示例程序,用于遍历和提取表单元素的值。表单元素如`<input>`, `<select>`, 和`<textarea>`可以通过`document.forms`访问,然后通过它们的`...
总结,JavaScript通过XMLHttpRequest对象和DOM接口可以方便地读取和操作XML文件。这在Web应用中尤其有用,例如,当需要从服务器获取结构化数据并在客户端进行处理时。了解并熟练掌握这些技术,对于进行富客户端应用...
SVG则是另一种矢量图形格式,它支持更复杂的图形和动画,且是XML语法的一部分,易于理解和操作。两者都能在浏览器中生成高质量的图形,适用于生成PDF这样的离线文档。 生成PDF的过程通常涉及以下几个步骤: 1. **...
DOM是一种在JavaScript或任何支持它的语言中处理XML文档的标准方式,它允许程序和脚本创建、访问和修改XML文档的结构和内容。 在描述中,同样提到了"dom_xml_demo",这表明这是一个关于如何使用DOM解析XML的实践...
当需要在JavaScript中处理XML数据时,可以使用DOM(文档对象模型)来解析和操作XML。 本实例中,“js从xml取回数据”展示了如何使用JS从XML文件中提取数据并将其在网页上展示。以下是一些关键知识点: 1. **XML...
在Windows环境中,DOM-MSXML(Microsoft XML Core Services)是一个常用的XML解析库,它提供了强大的功能来解析和操作XML文档。 DOM(Document Object Model)是一种标准的编程接口,用于处理XML和HTML文档。DOM将...
首先,通过DOM遍历获取所有SVG元素,然后使用`canvg`库或者`html2canvas`库将SVG转换为canvas的画布指令,最后调用canvas的`toDataURL`方法生成PNG图片的Base64编码,从而实现网页的导出。 导出为PNG图片时,我们...
DOM元素的节点及关系是JavaScript编程中至关重要的概念,因为它们提供了对页面内容进行查找、修改和操作的基础。 1. 节点类型与属性 `element.nodeType` 属性返回一个整数值,指示节点的类型。常见的类型有: - 1...
一旦XML文档被加载并解析为DOM树,我们可以遍历和处理XML节点。假设XML结构如下: ```xml 省份A"> 城市A1 城市A2 省份B"> 城市B1 城市B2 城市B3 <!-- 更多省份... --> ``` 我们可以遍历每个省份和...
总结来说,使用Ajax和JavaScript,我们可以动态获取和处理服务器数据,然后通过操作DOM显示在网页上,甚至可以进一步实现网页内容的打印。这大大增强了Web应用的交互性和功能,使得用户无需离开当前页面就能获取和...
XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被广泛应用于JavaScript中,用于选取XML或HTML文档中的...在JavaScript中掌握XPath的用法,能够帮助开发者更好地进行数据提取和页面自动化操作。
这段代码展示了如何将XML文件加载为SimpleXMLElement对象,然后通过类型转换将其转化为数组,以便进行遍历和操作。 在提供的压缩包中,有两个PHP文件:`xml2json0.php`和`Xmltoarray.php`。`xml2json0.php`可能是一...
具体来说,如果浏览器支持`ActiveXObject`对象,则使用`Microsoft.XMLDOM`来解析XML文件。若当前的`document.implementation`提供了`createDocument`方法,则可以使用该方法来创建XML文档对象。如果浏览器不支持上述...