用javascript操作xml

javascript|xml

<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>
posted on 2004-11-30 15:55 ttyp 阅读(2178) 评论(13)  编辑 收藏 收藏至365Key 所属分类: 脚本
 

评论
# re: 用javascript操作xml 2005-04-08 14:01 feig
感谢楼主,以前我做c/s的,对javascript的东西了解太少。
  

# re: 用javascript操作xml 2005-07-05 12:16 Koy
我以前也是做c/s的,现在也要学javascript了
  

# 求助 2005-08-29 11:30 hawk
我是用js加载xml的片断(从数据库读出的一段符合xml规则的字符串)读取节点,添加均没有问题,可最后却不知道如何将修改后的xml片断保存再放入数据库!求助!!
  

# re: 用javascript操作xml 2005-08-29 12:40 ttyp
doc.save(yourpath);

//你在code collection 可以看到很多XML操作
  

# re: 用javascript操作xml 2005-08-29 13:19 hawk
我保存的是xml的片断,不是xml的文件,是要把保存后的xml片断作为字符串再放入数据库,code collection 没有关于xml片断保存的操作阿!
  

# re: 用javascript操作xml 2005-08-29 13:26 ttyp
片段是什么?一个接点下的所有内容么,node.xml就是其内容啊
  

# re: 用javascript操作xml 2005-08-29 17:25 hawk
就是
<?xml version="1.0" encoding="gb2312"?><xml><group id="我的好友"><friend>1001</friend><friend>1002</friend><friend>1003</friend></group><group id="我的同事"><friend>1005</friend></group></xml>

这是放在数据库里得一个字段,用loadXML()的方法后可以和加载xml文件一样用,包括查找,修改,添加节点并显示出来,但是找不修改后保存再放回数据库的方法
  

# re: 用javascript操作xml 2005-08-29 19:05 ttyp
你要通过js直接保存在数据库里?那是不行得了,dom没有操作数据库得功能,只能保存为文件,你用doc.xml取得内容后,再用你怎么读得怎么写回去吧
  

# re: 用javascript操作xml 2005-09-17 01:55 xiao3
请教楼主大人,我在使用asp页面中调用 如下的代码时:(javascript中)
<script language=javascript>
var objXML = new ActiveXObject("MSXML2.DOMDocument");
objXML.async = false;
objXML.load("data1.xml");
alert("d:"+objXML.xml);
</script>
如果 装载的 data1.xml文件的第一句是:<?xml version="1.0" encoding="utf-8" ?>
alert出来就是空的。
而如果把第一句修改成<?xml version="1.0" encoding="gb2312" ?>
alert出来的内容是data1.xml的内容。
请教一下,如何在保持<?xml version="1.0" encoding="utf-8" ?> 的情况下,在javascript中能正确装载 xml文件? 现在是要把编码修改成 gb2312才可以。
谢谢。
  

# re: 用javascript操作xml 2005-09-17 08:06 ttyp
XML文件的编码格式修改为UTF-8试试(用记事本打开,另存为,下面有选编码的格式)
  

# re: 用javascript操作xml 2005-09-18 02:07 xiao3
谢谢楼主!
这样是可以load进来的,用这种方法可以,不知道是否还有其他的方法

谢谢。
  

# re: 用javascript操作xml 2005-10-19 20:26 gphy
楼主似乎没给出修改节点的方法

求解
  

# re: 用javascript操作xml 2005-10-19 22:55 ttyp
加了修改的部分
//修改节点,利用XPATH定位节点
var b = doc.selectSingleNode("//ttyp/sex");
b.text = "女";

时间: 2024-10-28 15:10:58

用javascript操作xml的相关文章

JavaScript操作XML文件之XML读取方法

 本文实例讲述了JavaScript操作XML文件之XML读取方法.分享给大家供大家参考.具体分析如下: 假设我们现在要读取下面的 info.xml 文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <?xml version="1.0" encoding="gb2312"?> <root> <data id="1"> <name

JavaScript操作Xml

如果你做Web开发,那就难免要与JavaScript打交道.而JavaScript作为一种浏览器脚本,以其强大的功能及方便的操作,已经赢得了全部浏览器的支持.在前面我介绍了如何使用Sql操作Xml和使用C#操作Xml,这里我就简单的介绍一下使用JavaScript来操作Xml数据.      学习任何知识的最佳途径莫过于实践.这里我们从一个简单的例子出发,来讲解如何使用JavaScript来操作Xml格式数据的.由于我的水平有限,不正确或者不合理的地方还请指正.      1.创建文档.    

JavaScript操作XML/HTML比较常用的对象属性集锦_javascript技巧

节点对象属性 childNodes-返回节点到子节点的节点列表 firstChild-返回节点的首个子节点. lastChild-返回节点的最后一个子节点. nextSibling-返回节点之后紧跟的同级节点. nodeName-返回节点的名字,根据其类型. nodeType-返回节点的类型. nodeValue-设置或返回节点的值,根据其类型. ownerDocument-返回节点的根元素(document对象). parentNode-返回节点的父节点. previousSibling-返回

JavaScript操作XML 使用百度RSS作为新闻源示例_javascript技巧

js操作xml源,作为页面的动态新闻 参考JS源码如下(存为rss.js文件): 复制代码 代码如下: var main = document.getElementById("content").getElementsByTagName("DIV"); /* * 当前目录下面有一个名为xml的子文件夹,下面引用的源保存在目录下. * 下面每一行的冒号前面是文件名,后面是xml源地址(可以从源址下载得到xml文件,下载后保存为对应文件名) * 可以在下面的地址上单击右

JavaScript操作XML实例代码(获取新闻标题并分页,并分页)_javascript技巧

具体内容我没有做测试.仅供参考 代码 复制代码 代码如下: <?xml version="1.0" encoding="gb2312"?> <NEWS> <New id="1" name="测试新闻1" time="2010-2-18"> <NBody>新闻测试1新闻测试1</NBody> </New> <New id="

javascript操作xml(增删改查)例子代码hta版_hta

包括了stu.hta(是HTML应用程序);      stu.xml 注意下面的HTML代码必须保存为后缀名为hta否则当对XML文件进行操作(增删改)的时候就会提示没有权限!! 文件stu.hta代码如下: 复制代码 代码如下: <html> <head> <title> 数据岛的显示 </title> <style type="text/css"> #findPanel { position:absolute; widt

JavaScript将XML转成JSON的方法

 这篇文章主要介绍了JavaScript将XML转成JSON的方法,实例分析了javascript操作XML文件及格式转化的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript将XML转成JSON的方法.分享给大家供大家参考.具体方法如下: 1. JavaScript代码如下: 代码如下: // Changes XML to JSON function xmlToJson(xml) { // Create the return object var obj

javascript调用XML制作连动下拉框

传统的HTML页面中连动下拉框采用了两种方法:1)直接将下拉框中的内容hardcode于html的javascript中,调用javascript函数循环写入下拉框中.这种方法不适用于下拉框内容经常改变的情况.因为数据源和javascript程序写死在同一页面.   <html><head><title>List</title><meta http-equiv="Content-Type" content="text/ht

Javascript 调用XML制作连动下拉框

javascript|xml|下拉 传统的HTML页面中连动下拉框采用了两种方法:1)直接将下拉框中的内容hardcode于html的javascript中,调用javascript函数循环写入下拉框中.这种方法不适用于下拉框内容经常改变的情况.因为数据源和javascript程序写死在同一页面.   <html><head><title>List</title><meta http-equiv="Content-Type" con