有没有人知道在客户端用javascript将xml文档对象转换成字符串的?就是要将字符串全部显示,包括头部
解决方案 »
- IE和FF对span的样式兼容
- document.getElementById("myul").attributes[0].specified这个specified表示什么?
- javascript函数有没有像java中的overload
- JavaScript中的中文排序问题
- 两个下拉列表问题
- 请问如何根据浏览器的大小调整层的位置??
- 关于JS的加载和屏蔽的问题,
- ie9 body onload 不执行 求高人指点 送100
- google.maps.Geocoder反向地址解析怎么得到英文地址?
- 求助,关于排序的问题,入门级,多谢了!!
- 关于从一个页面传值到页面本身判断div显示与否的问题
- 获取数据后排序
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
<style> </style>
</head>
<script language=javascript> var xmlReportData=null
function XMLload(){
xmlReportData = new ActiveXObject("Microsoft.XMLDOM");
xmlReportData.async = "false";
xmlReportData.onreadystatechange = function(){
if ( xmlReportData.readyState != 4){
return;
}else{
alert(xmlReportData.documentElement.xml);
}
};
xmlReportData.load( "tt.xml" );
}
window.onload=function(){
XMLload()
}
</script></html><?xml version="1.0" encoding="gb2312"?>
<root>
<cartoon id="1">
<serial>第一集 </serial>
<title>多变的时尚与基金排名 </title>
<imgurl>images/cartoon/1_s.jpg </imgurl>
<iconurl>images/cartoon/1_min.jpg </iconurl>
<link>cartoon1.html </link>
</cartoon>
<cartoon id="2">
<serial>第二集 </serial>
<title>投资理财也要中西合璧 </title>
<imgurl>images/cartoon/2_s.jpg </imgurl>
<iconurl>images/cartoon/2_min.jpg </iconurl>
<link>cartoon2.html </link>
</cartoon>
<cartoon id="3">
<serial>第三集 </serial>
<title>投资要学会克服贪婪 </title>
<imgurl>images/cartoon/3_s.jpg </imgurl>
<iconurl>images/cartoon/3_min.jpg </iconurl>
<link>cartoon3.html </link>
</cartoon>
<cartoon id="4">
<serial>第四集 </serial>
<title>如果你能预想挫折 </title>
<imgurl>images/cartoon/4_s.jpg </imgurl>
<iconurl>images/cartoon/4_min.jpg </iconurl>
<link>cartoon4.html </link>
</cartoon>
</root>
if (readyState == 4) {
var dataS = "<font color='red'>error:The content type is "
+ this.xmlReq.getResponseHeader("content-type")
+ "</font>";//初始化数据
//对返回类型的判断处理
//为xml格式的数据
if (this.type == "xml"
|| this.xmlReq.getResponseHeader("content-type")
.indexOf("xml") >= 0) {
dataS = this.xmlReq.responseXML;//得到XML文档对象
。。
但是不知道怎么拿到这个XML文档对象字符串显示,
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<META http-equiv="Content-Style-Type" content="text/css">
<style> </style>
</head>
<script language=javascript>
loadXML = function(fileRoute){
xmlDoc=null;
if (window.ActiveXObject){
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=false;
xmlDoc.load(fileRoute);
}
else if (document.implementation && document.implementation.createDocument){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",fileRoute,false);
xmlhttp.send(null);
var xmlDoc = xmlhttp.responseXML;
}
else {xmlDoc=null;}
return xmlDoc;
}
var xmlDoc=loadXML('tt.xml');
if(window.ActiveXObject)
alert(xmlDoc.documentElement.xml)//IE
else alert(new XMLSerializer().serializeToString(xmlDoc));//FF
</script></html>
var count = dataS.getElementsByTagName(this.tagLabel);
for (i = 0; i < count.length; i++) {
dataS = dataS + "第" + (i + 1) + "个" + this.tagLabel
+ ": <br>";
for (j = 0; j < this.tagNames.length; j++) {
if (count[i].childNodes[j].childNodes[0]) {// 对数据的存在性进行判断
dataS = dataS
+ this.tagNames[j]
+ ": "
+ count[i].childNodes[j].childNodes[0].nodeValue
+ "<br>";
} else {
dataS = dataS + this.tagNames[j] + ": " + ""
+ "<br>";
}
}
dataS = dataS + "<br>";
}
这么得到的,
alert(dataS.documentElement.xml)//IE
else alert(new XMLSerializer().serializeToString(dataS));//FF
还是不行。alert(new XMLSerializer())的时候连反映都没有- -!
不知道试为什么了
那可以知道这个xml文档对象显示xml文档的头部信息吗?如:<?xml version="1.0"encoding="gb2312"?>
IE下用this.xmlReq.documentElement.xml 呢?xml定义貌似获取不到
if(oNode.text){
return oNode.text;
}
var sText = "";
for (var i = 0; i < oNode.childNodes.length; i++) {
if (oNode.childNodes[i].hasChildNodes()) {
sText += getXmlText(oNode.childNodes[i]);
}
else {
sText += oNode.childNodes[i].nodeValue;
} }
return sText;
}
function getXml(oNode) {
if(oNode.xml){ return oNode.xml;
} var oSerializer = new XMLSerializer(); return oSerializer.serializeToString(oNode);}function createXmlDoc(xmlText) {
if (!xmlText) return null;
try {
var xmlDom = new ActiveXObject("Microsoft.XMLDOM")
xmlDom.loadXML(xmlText)
return xmlDom
}
catch (e) {
try {
return new DOMParser().parseFromString(xmlText, "text/xml");
} catch (e) {
return null;
}
}
}alert(getXml(createXmlDoc("<items><item>111</item><item>111</item></items>")));
alert(getXmlText(createXmlDoc("<items><item>111</item><item>111</item></items>")));
其实还有个比较偏的方法,在服务器里用I/O流来读写xml.
原来是服务器那边xml格式数据传输错误。。导致得到的对象就是错误的。
ps:那些方法其实都可以的,只是服务器的失误。我很汗
不过学到了一个方法
就是在这种情况下,可以考虑将那个文本alert一下,看看文本有没有错误,
谢谢各位大侠的帮助了。