- 浏览: 391942 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
hylandtecliulei:
现在JSF在国外很火的,我们公司的开发平台就是基于JSF
JSF的各种框架实现(对目前JSF群雄一个了解)(转) -
bcabchappy:
在哪呢?压力挺大的,诶。
flex 三大数据传输格式 json,xml,object相互转换的api -
simple8888:
JSF现在还有吗?
JSF的各种框架实现(对目前JSF群雄一个了解)(转) -
游其是你:
请问channelset写在哪儿啊?最后写个小项目“hello ...
用as实现RemoteObject -
hans.org:
mark it
自定义组件中的元数据标签
精确掌握相关知识的学习网址 :http://www.w3school.com.cn/xmldom/dom_nodes.asp
超经典
<script language=javascript>
var str = "<input>11112345</input>";
var doc = new xml( str );
alert(doc);
//创建一个dom对象
function xml(str){
if(window.DOMParser)//firefox内核的浏览器
{
var p = new DOMParser();
return p.parseFromString( str, "text/xml" );
}
else if( window.ActiveXObject )//ie内核的浏览器
{
var doc = new ActiveXObject( "Msxml2.DOMDocument" );
doc.loadXML(str);
return doc;
}
else
return false;
}
</script>
........................
if(!!document.all)
{
alert('当前浏览器为IE,IE兼容');
}
else
{
alert('当前浏览器为FireFox,FireFox兼容');
}
-------
一般情况下,将数据放到一个节点的属性上,这样最容易操作,
例如xml格式为:
<photo attr1="1" attr2="2"></photo>
如果得到photo节点后,可以如下操作:
node.getAttribute(''attr1'');
这样可以得到属性的值。
第二种情况,如果是放入的节点之间,比如:
<photo>这是我的照片</photo>
这样可以用node.firstChild.data来获取数据,其中photo之间的内容被看作一个文本节点,因此必须用firstChild首先得到这个节点后,然后取其data信息。
第三种情况,如果信息包含一个html或者其他xml无法直接认识的内容,可以将其放入cdata中,这样js也可以很容易处理,跟第二种情况一样:xml代码如下:
<photo><![CDATA[<a href="这是我的照片的连接">这是我的照片</a>]]></photo>
-------------
<script language="JavaScript">
<!--
var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")
doc.loadXML('<?xml version="1.0"?><students><name id="test"><firstname>王</firstname></name></students>');
var newnode = doc.createNode(1,"name","");
var r = doc.createAttribute("id"); //创建属性
r.value="test2";
newnode.setAttributeNode(r); //添加属性
var newelement=doc.createElement("sex");//创建元素
var r1 = doc.createAttribute("id"); //创建属性
r1.value="test2";
newelement.setAttributeNode(r1)
newnode.appendChild(newelement)
doc.lastChild.appendChild(newnode)
alert(doc.xml)//添加一个子节点后的xml
currNode=doc.documentElement.childNodes.item(0);//
doc.documentElement.removeChild(currNode)//删除节点
alert(doc.xml)//删除后的xml
//-->
</script>
------------------
<script language="JavaScript">
<!--
var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")
//加载文档
//doc.load("b.xml");
//创建文件头
var p = doc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
//添加文件头
doc.appendChild(p);
//用于直接加载时获得根接点
//var root = doc.documentElement;
//两种方式创建根接点
// var root = doc.createElement("students");
var root = doc.createNode(1,"students","");
//创建子接点
var n = doc.createNode(1,"ttyp","");
//指定子接点文本
//n.text = " this is a test";
//创建孙接点
var o = doc.createElement("sex");
o.text = "男"; //指定其文本
//创建属性
var r = doc.createAttribute("id");
r.value="test";
//添加属性
n.setAttributeNode(r);
//创建第二个属性
var r1 = doc.createAttribute("class");
r1.value="tt";
//添加属性
n.setAttributeNode(r1);
//删除第二个属性
n.removeAttribute("class");
//添加孙接点
n.appendChild(o);
//添加文本接点
n.appendChild(doc.createTextNode("this is a text node."));
//添加注释
n.appendChild(doc.createComment("this is a comment\n"));
//添加子接点
root.appendChild(n);
//复制接点
var m = n.cloneNode(true);
root.appendChild(m);
//删除接点
root.removeChild(root.childNodes(0));
//创建数据段
var c = doc.createCDATASection("this is a cdata");
c.text = "hi,cdata";
//添加数据段
root.appendChild(c);
//添加根接点
doc.appendChild(root);
//查找接点
var a = doc.getElementsByTagName("ttyp");
//var a = doc.selectNodes("//ttyp");
//显示改接点的属性
for(var i= 0;i<a.length;i++)
{
alert(a[i].xml);
for(var j=0;j<a[i].attributes.length;j++)
{
alert(a[i].attributes[j].name);
}
}
//修改节点,利用XPATH定位节点
var b = doc.selectSingleNode("//ttyp/sex");
b.text = "女";
//alert(doc.xml);
//XML保存(需要在服务端,客户端用FSO)
//doc.save();
//查看根接点XML
if(n)
{
alert(n.ownerDocument.xml);
}
//-->
</script>
-------------
<script language="javascript">
function window.onload()
{
var domXML=new ActiveXObject("Microsoft.xmldom");
domXML.load("Sele.xml");
var myRoot=domXML.documentElement;
var myNodes2=myRoot.childNodes;
var myNode2=myNodes2.nextNode();
var tableStr="";
for(var i=0;i<myNodes2.length;i++)
{
myNodes3=myNode2.childNodes;
myNode3=myNodes3.nextNode();
tableStr=tableStr+"<tr>";
for(var j=0;j<myNodes3.length;j++)
{
tableStr=tableStr+"<td width=100 bgcolor='#F3432A'>" + myNode3.text + "</td>";
myNode3=myNodes3.nextNode();
}
myNode=myNodes2.nextNode();
tableStr=tableStr + "</tr>";
}
tableStr="<table width=800 border=1><tr><td>CPU</td><td>内存</td><td>主板</td><td>硬盘</td></tr>" + tableStr + "</table>";
document.all.lideyongValue.innerHTML=tableStr;
}
</script>
-------------
首先,我们需要加载这个xml文件,js中加载xml文件,是通过XMLDOM来进行的.
// 加载xml文档
loadXML = function(xmlFile)
{
var xmlDoc;
if(window.ActiveXObject)
{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (document.implementation&&document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
}
else
{
return null;
}
return xmlDoc;
}
xml文件对象出来了, 接下去我就要对这个文档进行操作了.
比如说,我们现在需要得到节点Login/Weapon/W的第一个节点的属性,那么我们可以如下进行.
// 首先对xml对象进行判断
checkXMLDocObj = function(xmlFile)
{
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null)
{
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href='/Index.aspx';
}
return xmlDoc;
}
// 然后开始获取需要的Login/Weapon/W的第一个节点的属性值
var xmlDoc = checkXMLDocObj('/EBS/XML/Login.xml');
var v = xmlDoc.getElementsByTagName('Login/Weapon/W')[0].childNodes.getAttribute('Text')
而我在我的程序中的写法是这样子的,当然我在程序中的写法是已经应用到实际中的了.一并给出来,以供查看
initializeSelect = function(oid, xPath)
{
var xmlDoc = checkXMLDocObj('/EBS/XML/Login.xml');
var n;
var l;
var e = $(oid);
if(e!=null)
{
n = xmlDoc.getElementsByTagName(xPath)[0].childNodes;
l = n.length;
for(var i=0; i<l; i++)
{
var option = document.createElement('option');
option.value = n[i].getAttribute('Value');
option.innerHTML = n[i].getAttribute('Text');
e.appendChild(option);
}
}
}
上面的访问代码中,我们是通过xmlDoc.getElementsByTagName(xPath)来进行的.
还可以通过xmlDoc.documentElement.childNodes(1)..childNodes(0).getAttribute('Text')进行访问.
一些常用方法:
xmlDoc.documentElement.childNodes(0).nodeName,可以得到这个节点的名称.
xmlDoc.documentElement.childNodes(0).nodeValue,可以得到这个节点的值. 这个值是来自于这样子的xml格式:<a>b</b>, 于是可以得到b这个值.
xmlDoc.documentElement.childNodes(0).hasChild,可以判断是否有子节点
根据我的经验,最好是使用getElementsByTagName(xPath)的方法对节点进行访问,因为这样子可以直接通过xPath来定位节点,这样子会有更好的性能.
发表评论
-
近日js使用
2009-09-18 11:39 9851、最强的js日期校验:校验了闰年闰月的日期、时、分、秒的大小 ... -
JavaScript函数this调用规则
2009-06-01 15:06 3530不是我翻译的,但是觉 ... -
spring中使用json问题
2009-04-14 16:40 53461)添加包: json解析用到的包:核心包json-lib- ... -
jquery插件:SimpleModal
2009-04-02 20:50 7081跨浏览器的对话框插件。插件结构比较清晰!操作很方便!1)使用方 ... -
js的对象特性
2009-03-10 18:05 1125Javascript中的对象是无处不在的,function,b ... -
js 的 delete
2009-03-10 15:39 3860虽然是一个小小的delete操作符,其行为却异常复杂。 ... -
js的闭包和return理解
2009-03-09 18:14 1284闭包的两个特点: 1、作为一个函数变量的一个引用 - 当函数 ... -
js的日期格式化
2009-03-04 16:44 1648function checkDate(txtObject ... -
jquery精华
2009-02-10 11:50 12041、关于页面元素的引用 ... -
SITEMESH-总结自俺们论坛
2008-11-27 10:23 15331、问题:被修饰页面的body区被“干掉”了。。。取而代之的是 ... -
offsetLeft,Left,clientLeft的区别
2008-09-16 14:50 3397js开发富客户端必须要 ... -
js小技巧
2008-09-02 10:21 15311)改变<input type="text ... -
attachEvent绑定函数添加参数
2008-08-28 11:01 1960满世界跑了一圈,最简单的 如下: <html> ... -
onload问题解决
2008-08-14 10:55 1233问题:默认onload会等待文件加载完毕才执行,如果你的页面有 ... -
解除js循环引用带来的内存泄漏危机
2008-08-05 11:58 2365原文:http://javascript.crockford. ... -
携带值小技巧,简化js2
2008-08-04 12:33 1140上次发了个小技巧解决数据分散的导致需要计算时获取数据很麻烦的问 ... -
JS中公共/私有变量和方法 (翻译总结)
2008-07-29 09:22 4460公共/私有变量和方法 通过一个简单的的例子,来展示如何使用Ja ... -
无污染的 JavaScript 对象设计
2008-07-17 09:05 1199论坛里 achun发的贴 : http://www.itey ... -
携带值小技巧,简化js
2008-07-11 10:42 1359问题:在页面上一个循环打印出来的表,点击某一行时取得本行某些列 ... -
提高css的可读性(翻译总结)
2008-05-07 10:33 1741当你完成了项目后,非 ...
相关推荐
JavaScript是一种广泛应用于网页和网络应用的编程语言,它在客户端运行,无需服务器支持即可与用户交互,处理数据和控制页面动态行为。XML(Extensible Markup Language)和HTML(Hypertext Markup Language)则是两...
js 操作xml 文件 读取xml文件 js 操作xml 文件 读取xml文件
Javascript操作XML Dom学习资料
在JavaScript中,XML(eXtensible Markup Language)文件的操作主要通过DOM(Document Object Model)接口来实现。DOM是一种标准,允许程序和脚本动态更新、添加、删除和改变元素和属性,使得XML文档可以被解析和...
XmlUtils JS操作XML工具类 ** * 加载xml文件,参数: * @param {string} xmlPath:加载的xml文件路径; * @return {Object} true 正常加载; false 加载失败 *
以上就是JavaScript操作XML的基本知识,包括创建XML对象、DOM操作、事件处理以及通过AJAX获取和解析XML数据的方法。理解这些概念和实践,将有助于你在实际项目中更好地处理XML数据。在提供的“JavaScript节点操作xml...
作为一名 IT 行业大师,我将从给定的文件中生成相关知识点,涵盖 JS 解析 XML 文件的各种方面。 JS 解析 XML 文件的必要性 在当前的 web 开发中,XML 文件广泛应用于数据交换和存储。因此,如何使用 JavaScript ...
在网页开发中,JavaScript(简称JS)是一种广泛使用的客户端脚本语言,用于处理用户交互、操作DOM(Document Object Model)以及与服务器进行通信。当涉及到XML(eXtensible Markup Language)数据时,JS同样能发挥...
### JavaScript 验证 XML 正确性的方法 在 Web 开发中,XML(可扩展标记语言)被广泛用于数据交换和存储。为了确保 XML 文件的结构完整性和语法正确性,通常需要对其进行验证。本文将详细介绍如何使用 JavaScript ...
Java和JavaScript(简称JS)作为两种常用的编程语言,都有处理XML文件的能力。本篇将详细介绍如何在Java和JavaScript中操作XML文件。 1. Java操作XML文件 - DOM解析:Java中使用DOM解析器(如org.w3c.dom.Document...
本文将深入探讨“js对xml的简单操作”这一主题,通过实例解析如何利用JavaScript进行XML文档的基本读取、修改和保存操作。 ### 一、XML文档结构 XML是一种用于存储和传输数据的格式,它使用标签来组织数据,结构...
利用JavaScript进行XML文件的读写操作,可以极大地增强前端页面的动态性和交互性。下面,我们将深入探讨如何使用JavaScript来读取和写入XML文件,包括关键知识点和实际代码示例。 #### 创建和加载XML文档 在...
JavaScript(简称JS)是一种广泛用于Web开发的轻量级脚本语言,它可以在客户端运行,为网页添加交互性。在处理XML(可扩展标记语言)数据时,JS提供了DOM(文档对象模型)接口,用于解析、遍历和操作XML文档。这篇...
JavaScript操作XML是一种常见的数据交互方式,特别是在Web应用程序中。XML(eXtensible Markup Language)是一种结构化数据格式,常用于存储和传输数据。而JavaScript作为客户端编程语言,提供了多种方式来解析、...
在JavaScript中获取XML文件的数据是一项常见的任务,尤其在前端开发中,当需要处理服务器返回的XML数据时。本文将深入探讨如何使用JavaScript来解析和操作XML文件,以便从中提取所需的信息。 首先,我们需要理解XML...
JavaScript操作XML的数据岛技术是一种在Web开发中处理结构化数据的方法。数据岛是将XML数据嵌入HTML文档中的一种方式,使得JavaScript可以直接访问和操作这些数据,而无需通过服务器进行额外的请求。这一技术在早期...
XML是一种自描述的、灵活的标记语言,它的主要特点是结构化和可扩展性。XML文档由元素、属性、文本内容和声明组成,允许开发者定义自己的标签来描述数据。例如,下面是一个简单的XML文档示例: ```xml <?xml ...
通过以上方法,我们可以在JavaScript中有效地操作XML文件,同时解决Firefox和IE之间的兼容问题。了解这些概念和技巧,开发者就能在不同的浏览器环境下灵活地处理XML数据,提升Web应用的性能和用户体验。
标题“JS传递XML文件”指的是如何在JavaScript中构建一个机制,安全地将XML数据传输到ASP.NET后端。描述中提到的问题是ASP.NET在接收到请求时检测到可能含有HTML标记或脚本的数据,这可能引发安全问题。因此,我们...