<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>JavaScript Book--代码9-40</TITLE>
</HEAD>
<script language="JavaScript">
function savexml(){
//saveiframe为一个隐藏的iframe
saveiframe.document.clear();
saveiframe.document.open();
//通过createxmltext获得当前流程的XML表示,写入的隐藏的iframe
saveiframe.document.write(createxmltext());
saveiframe.document.execCommand('SaveAs',false,'222.xml');
saveiframe.document.clear();
saveiframe.document.close();
flowNeedSave = false;
}
function createxmltext(){
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
//创建文件头
var p = xmldoc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
//添加文件头
xmldoc.appendChild(p);
//两种方式创建根节点
// var root = xmldoc.createElement("students");
var root = xmldoc.createNode(1,"JDBCConnection","");
//创建子节点
var n = xmldoc.createNode(1,"username","");
//指定子节点文本
//n.text = " this is a test";
//创建孙节点
var o = xmldoc.createElement("connsize");
//指定其文本
o.text = "20";
//创建属性
var r = xmldoc.createAttribute("id");
r.value="no1";
//为子节点n添加属性
n.setAttributeNode(r);
//创建第二个属性
var r1 = xmldoc.createAttribute("class");
r1.value="tt";
//添加属性
n.setAttributeNode(r1);
//删除第二个属性
n.removeAttribute("class");
//添加孙节点
n.appendChild(o);
//为n添加文本接点
n.appendChild(xmldoc.createTextNode("yyh"));
//添加注释
n.appendChild(xmldoc.createComment("注释\n"));
//添加子节点到根节点
root.appendChild(n);
//复制节点
var m = n.cloneNode(true);
root.appendChild(m);
//删除节点
root.removeChild(root.childNodes(0));
//创建数据段
var c = xmldoc.createCDATASection("cdata节点");
c.text = "cdata数据";
//添加数据段
root.appendChild(c);
//添加根节点
xmldoc.appendChild(root);
//修改节点,利用XPATH定位节点
var b = xmldoc.selectSingleNode("//username/connsize");
b.text = "30";
return xmldoc.xml;
}
</script>
<BODY>
<TABLE>
<TR>
<TD><INPUT TYPE="button" NAME="save" οnclick="savexml();" value="保存"></TD>
</TR>
</TABLE>
<iframe id="saveiframe" width="0" height="0" ></iframe>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>JavaScript Book--代码9-40</TITLE>
</HEAD>
<script language="JavaScript">
function savexml(){
//saveiframe为一个隐藏的iframe
saveiframe.document.clear();
saveiframe.document.open();
//通过createxmltext获得当前流程的XML表示,写入的隐藏的iframe
saveiframe.document.write(createxmltext());
saveiframe.document.execCommand('SaveAs',false,'222.xml');
saveiframe.document.clear();
saveiframe.document.close();
flowNeedSave = false;
}
function createxmltext(){
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
//创建文件头
var p = xmldoc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
//添加文件头
xmldoc.appendChild(p);
//两种方式创建根节点
// var root = xmldoc.createElement("students");
var root = xmldoc.createNode(1,"JDBCConnection","");
//创建子节点
var n = xmldoc.createNode(1,"username","");
//指定子节点文本
//n.text = " this is a test";
//创建孙节点
var o = xmldoc.createElement("connsize");
//指定其文本
o.text = "20";
//创建属性
var r = xmldoc.createAttribute("id");
r.value="no1";
//为子节点n添加属性
n.setAttributeNode(r);
//创建第二个属性
var r1 = xmldoc.createAttribute("class");
r1.value="tt";
//添加属性
n.setAttributeNode(r1);
//删除第二个属性
n.removeAttribute("class");
//添加孙节点
n.appendChild(o);
//为n添加文本接点
n.appendChild(xmldoc.createTextNode("yyh"));
//添加注释
n.appendChild(xmldoc.createComment("注释\n"));
//添加子节点到根节点
root.appendChild(n);
//复制节点
var m = n.cloneNode(true);
root.appendChild(m);
//删除节点
root.removeChild(root.childNodes(0));
//创建数据段
var c = xmldoc.createCDATASection("cdata节点");
c.text = "cdata数据";
//添加数据段
root.appendChild(c);
//添加根节点
xmldoc.appendChild(root);
//修改节点,利用XPATH定位节点
var b = xmldoc.selectSingleNode("//username/connsize");
b.text = "30";
return xmldoc.xml;
}
</script>
<BODY>
<TABLE>
<TR>
<TD><INPUT TYPE="button" NAME="save" οnclick="savexml();" value="保存"></TD>
</TR>
</TABLE>
<iframe id="saveiframe" width="0" height="0" ></iframe>
</BODY>
</HTML>