ajax读取服务器端的xml数据 (转)
2008-10-11 01:02
288 查看
最近比较忙,没有空写东西 ,转一篇文章吧
原文:http://blog.csdn.net/shuzhp/archive/2008/10/10/3049039.aspx
<html>
<body>
<select name="userid" id="userid">
<option value="0">
请选择分类
</option>
</select>
<script>
//此程序必须在服务器上运行
// XMLHTTP是在javascript中直接建立的HTTP请求,
// 它可以实现向服务器发送数据以及接收从服务器返回的数据
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //创建对象(IE)
//打开与服务器端的 服务网页的链接 同步
//MyXml.xml在服务器上 (只请求MyXml)
xmlhttp.open("GET", "MyXml.xml", false);
//向服务器发送请求
xmlhttp.send();
//xmlhttp.responseXML为服务器返回的XML数据
//xmlhttp.responseText为服务器返回的文本字符串信息
alert("XMLHTTP获取从服务器返回的XML数据:"+xmlhttp.responseXML.xml);
//以下为XML的操作对象XMLDOM,它可以操作xml节点,与HTMLDOM操作html类似
//创建XMLDOC对象
function createXMLDOM()
{
var arrVersions= ["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0","MSXML2.DOMDocument", "Microsoft.XmlDoc"];
for (var i=0; i < arrVersions.length; i++)
{
try
{
var xmlDoc = new ActiveXObject(arrVersions[i]);
return xmlDoc;
}
catch (oError)
{
////忽略,继续创建
}
}
throw new Error("系统没有安装MSXML");
}
var xmlDoc=createXMLDOM();
xmlDoc.async=false; //同步
//如果异步执行以下操作
//xmlDoc.onreadystatechange=function()
//{
// if(xmlDoc.readyState==4) //判断是否已经装载完成 xmlDoc对象
// {
// alert("aaaa");
// }
//}
//还有一个函数:loadXML(string):以字符的形式直接创建XML文档,并把string写入xml中
xmlDoc.load("MyXml.xml"); //从服务器上载入xml文件(不能载入不同服务器的xml)
var str=xmlDoc.xml;
alert("xmlDoc.xml属性:"+str);
var node=xmlDoc.documentElement; //获取根结点
alert("根结点名称:"+node.nodeName); //根结点为items
var str2=node.xml;
alert("根结点为items的xml属性:"+str2);
var node=xmlDoc.getElementsByTagName("item")[0];
var str3=node.xml;
alert("下一结点item的xml属性:"+str3);
// 以上输出:
//<item>
// <id>1</id>
// <name>bb1</name>
//</item>
var node=xmlDoc.getElementsByTagName("id")[0];
var str4=node.xml;
alert("下一结点item的xml属性:"+str4);
// 以上输出:
// <id>1</id>
//用xml中数据给第二个下拉列表赋值,执行后下拉列表有值
var items = xmlDoc.getElementsByTagName("item");
for(i=1;i<items.length+1;i++)
{
//nodeValue取节点的值
var value =items[i-1].getElementsByTagName("id")[0].firstChild.nodeValue;
var text=items[i-1].getElementsByTagName("name")[0].firstChild.nodeValue;
//下拉列表options集合,new Option生成新的option
document.getElementById("userid").options[i] = new Option(text,value);
}
var node2=document.documentElement;
alert("本页信息的根结点document.documentElement:"+node2.nodeName);
</script>
</body>
</html>
原文:http://blog.csdn.net/shuzhp/archive/2008/10/10/3049039.aspx
<html>
<body>
<select name="userid" id="userid">
<option value="0">
请选择分类
</option>
</select>
<script>
//此程序必须在服务器上运行
// XMLHTTP是在javascript中直接建立的HTTP请求,
// 它可以实现向服务器发送数据以及接收从服务器返回的数据
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //创建对象(IE)
//打开与服务器端的 服务网页的链接 同步
//MyXml.xml在服务器上 (只请求MyXml)
xmlhttp.open("GET", "MyXml.xml", false);
//向服务器发送请求
xmlhttp.send();
//xmlhttp.responseXML为服务器返回的XML数据
//xmlhttp.responseText为服务器返回的文本字符串信息
alert("XMLHTTP获取从服务器返回的XML数据:"+xmlhttp.responseXML.xml);
//以下为XML的操作对象XMLDOM,它可以操作xml节点,与HTMLDOM操作html类似
//创建XMLDOC对象
function createXMLDOM()
{
var arrVersions= ["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
"MSXML2.DOMDocument.3.0","MSXML2.DOMDocument", "Microsoft.XmlDoc"];
for (var i=0; i < arrVersions.length; i++)
{
try
{
var xmlDoc = new ActiveXObject(arrVersions[i]);
return xmlDoc;
}
catch (oError)
{
////忽略,继续创建
}
}
throw new Error("系统没有安装MSXML");
}
var xmlDoc=createXMLDOM();
xmlDoc.async=false; //同步
//如果异步执行以下操作
//xmlDoc.onreadystatechange=function()
//{
// if(xmlDoc.readyState==4) //判断是否已经装载完成 xmlDoc对象
// {
// alert("aaaa");
// }
//}
//还有一个函数:loadXML(string):以字符的形式直接创建XML文档,并把string写入xml中
xmlDoc.load("MyXml.xml"); //从服务器上载入xml文件(不能载入不同服务器的xml)
var str=xmlDoc.xml;
alert("xmlDoc.xml属性:"+str);
var node=xmlDoc.documentElement; //获取根结点
alert("根结点名称:"+node.nodeName); //根结点为items
var str2=node.xml;
alert("根结点为items的xml属性:"+str2);
var node=xmlDoc.getElementsByTagName("item")[0];
var str3=node.xml;
alert("下一结点item的xml属性:"+str3);
// 以上输出:
//<item>
// <id>1</id>
// <name>bb1</name>
//</item>
var node=xmlDoc.getElementsByTagName("id")[0];
var str4=node.xml;
alert("下一结点item的xml属性:"+str4);
// 以上输出:
// <id>1</id>
//用xml中数据给第二个下拉列表赋值,执行后下拉列表有值
var items = xmlDoc.getElementsByTagName("item");
for(i=1;i<items.length+1;i++)
{
//nodeValue取节点的值
var value =items[i-1].getElementsByTagName("id")[0].firstChild.nodeValue;
var text=items[i-1].getElementsByTagName("name")[0].firstChild.nodeValue;
//下拉列表options集合,new Option生成新的option
document.getElementById("userid").options[i] = new Option(text,value);
}
var node2=document.documentElement;
alert("本页信息的根结点document.documentElement:"+node2.nodeName);
</script>
</body>
</html>
相关文章推荐
- 黑马程序员_Ajax中使用XML(从服务器端输出XML格式数据,在模版页接收数据)
- ajax读取xml的数据的HelloWorld程序
- 用Ajax去读取服务器端的XML格式的数据
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- HTML/Ajax/XML数据交互:HTML通过Ajax读取XML的存储信息
- jQuery基于Ajax实现读取XML数据功能示例
- 用ajax xml的数据读取的HelloWorld程序
- jquery-ajax请求action读取oracle数据库clob字段xml数据格式化显示(struts2)
- 根据ajax发送数据,从servelt中读取xml数据并显示,实现查询、删除和分页
- 通过ajax来读取xml里面的数据,以及查询好数据如何写入xml里去 来供ajax读取
- Ajax读取XML和JSON数据
- ajax之xml数据的服务器端发送和客户端接收。
- Ajax 从servlet中读取xml数据
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- Ajax 动态(asp程序)无刷新读取(xml)数据
- ajax中用responseXML读取不到中文数据的问题
- ^_^,学习javascript,上下移动行后用js把数据保存到xml文件中,然后在服务器端读这个xml保存到数据库中
- JQuery读取XML文件数据并显示的实现代码
- JXTree对象,读取外部xml文件数据,生成树的函数