漫漫技术人生路

C#

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

文中尽量用上所有的操作和属性,以做示范

<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 阅读(8082) 评论(46)  编辑 收藏 引用 收藏至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 = "女";  回复
  

# re: 用javascript操作xml 2005-11-05 21:14 nameless
为什么无论encoding=""这项指定为gb2312或其它等.alert(doc.xml)出来看到的头都只有<?xml version="1.0"?>而不包括编码?这样用fso保存的话头就只有<?xml version="1.0"?>,若有文中包含中文就会有问题(我用fso.write(doc.xml)的方法保存)  回复
  

# re: 用javascript操作xml 2005-11-06 12:31 ttyp
似乎有这个问题,但是只访问文中得p得属性,可以访问到encoding属性,你可以在最后做一个替换,把<?xml version="1.0">替换成你要得,然后再保存  回复
  

# re: 用javascript操作xml 2005-11-09 00:05 liuzhiyong
请问在服务器中怎么保存XML的内容,客户端用FSO保存后又怎么传给服务端?上传?  回复
  

# re: 用javascript操作xml 2005-11-10 09:02 ttyp
服务器?是服务端吧,直接doc.save(路径)或者用fso保存,客户端得可以读出内容然后post  回复
  

# re: 用javascript操作xml 2005-12-06 17:29 ssaasdsdfsf
sdfsadfsafssdfsdfsafsadffsadfasdfsfsaafsadf  回复
  

# re: 用javascript操作xml 2006-02-13 20:29 @@!
&#25105&#26159&#27004&#20027&#30340&#20799&#23376  回复
  

# re: 用javascript操作xml 2006-03-04 16:10 txzero
上面的这位仁兄,你怎么这样回复啊。
翻译:&#25105&#26159&#27004&#20027&#30340&#20799&#23376
如下:我是楼主的儿子
  回复
  

# re: 用javascript操作xml 2006-03-05 18:05 ttyp
-_-!  回复
  

# re: 用javascript操作xml 2006-03-07 16:38 frank1197
doc.save("tmp.xml");


为什么告诉我语法不对?  回复
  

# re: 用javascript操作xml 2006-03-07 16:56 frank1197
doc.save("tmp.xml");


确认了一下,告诉我的是写入失败。。。。。  回复
  

# re: 用javascript操作xml 2006-03-07 17:18 frank1197
function test()
{
var doc = new ActiveXObject("Msxml2.DOMDocument");
doc.load("tmp.xml");

var p = doc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
doc.appendChild(p);

var root = doc.createElement("students");
doc.appendChild(root);
alert(doc.xml);
doc.save("tmp.xml");
}

不晓得为什么老是不让我写入。。。搂住帮忙啊  回复
  

# re: 用javascript操作xml 2006-03-09 11:10 ttyp
要写全路径,还有就是HTML可能没有权限  回复
  

# re: 用javascript操作xml 2006-03-26 15:33 yukun
请问HTML没有权限修改保存XML文件的问题该如何解决呢?  回复
  

# re: 用javascript操作xml 2006-03-26 17:14 ttyp
降低IE的安全级别  回复
  

# re: 用javascript操作xml 2006-03-27 14:48 yukun
不好意思,我将安全级别降到最低仍会提示“没有权限”,“自定义安全级别”也找不到相关的选项  回复
  

# re: 用javascript操作xml 2006-03-31 18:50 jojo
感谢楼主的文章!

但是我也无法在服务器上保存这个xml文件,我尝试给出路经,但是还是无法做到,也没有错误的提示。

不知道楼主或者哪位朋友知道如何解决。非常期待。

谢谢

  回复
  

# re: 用javascript操作xml 2006-03-31 20:53 ttyp
是不是你给的路径不对,如果是js路径里\\替代\  回复
  

# re: 用javascript操作xml 2006-04-01 23:40 ff
h  回复
  

# re: 用javascript操作xml 2006-07-19 11:00 site120
针对他们要把xml给保存到服务器上这个问题。

1,这是客户端编程(javascript),不是服务器端编程,所以不能利用xml.save()直接保存到服务器当中。

2, 应该先在客户端,将数据处理好。再通过Ajax 或者 是表单提交 或者是传递参数的方法传到服务端。

3,最后由 服务端的程序(asp , jsp , php , perl....)来处理保存到数据库可以服务器当中。  回复
  

# re: 用javascript操作xml 2006-08-05 14:50 hai
doc.load("tmp.xml");
tmp.xml在哪个路径下
请各位高手帮忙  回复
  

# re: 用javascript操作xml 2006-08-10 14:16 sailor_hu
如果不是ie 浏览器,那怎么办?

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
没有作用,会抱错的 请教,谢谢  回复
  

# re: 用javascript操作xml 2006-08-13 10:15 ttyp
doc = (new DOMParser()).parseFromString(sXML,'text/xml')  回复
  

# re: 用javascript操作xml 2006-08-13 10:39 ttyp
@hai
最好指定绝对路径  回复
  

# re: 用javascript读取xml 2006-08-28 19:25 过客656
doc.load ("china.xml")

var list = doc.selectNodes("/中国/省[@名称='福建']/城市")
for(var i=0;i<list.length;i++) {
alert(list[i].text);
}  回复
  

# re: 用javascript操作xml(实例) 2006-08-28 21:48 过客656
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body>
<script language=javascript>
<!--

var doc = new ActiveXObject("MSXML2.DOMDocument");
function writeXML()
{
// var doc = new ActiveXObject("Msxml2.DOMDocument");
// doc.load("tmp.xml");
var doc = new ActiveXObject("MSXML2.DOMDocument");
var p = doc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
doc.appendChild(p);
var root = doc.createNode(1,"中国","");
doc.appendChild(root);
var elem=doc.createNode(1,"省","");
root.appendChild(elem);
var att=doc.createAttribute("名称");
att.value="福建";
elem.setAttributeNode(att);
var ele1=doc.createNode(1,"城市","");
ele1.text="厦门";
elem.appendChild(ele1);
var ele2=doc.createNode(1,"城市","");
ele2.text="石狮";
elem.appendChild(ele2);
var ele3=doc.createNode(1,"城市","");
ele3.text="晋江";
elem.appendChild(ele3);

var elem=doc.createNode(1,"省","");
root.appendChild(elem);
var att=doc.createAttribute("名称");
att.value="江苏";
elem.setAttributeNode(att);

var elem=doc.createNode(1,"省","");
root.appendChild(elem);
var att=doc.createAttribute("名称");
att.value="安徽";
elem.setAttributeNode(att);


doc.save("china.xml");
}

function readXML(){
var doc = new ActiveXObject("MSXML2.DOMDocument");
doc.load ("china.xml")
var list = doc.selectNodes("/中国/省[@名称='福建']/城市")
for(var i=0;i<list.length;i++) {
alert(list[i].text);
}
}

//-->
</script>
<br><br><br><br><br><br>
<center>
<input type=button value="写入XML" onclick="writeXML()" id=button1 name=button1>
<input type=button value="读取XML" onclick="readXML()" id=button2 name=button2>
<center>
</body>
</html>
posted on 2006-09-22 15:04  javaca88  阅读(878)  评论(1编辑  收藏  举报