javascript读写xml的问题

abcdefg171459 2009-11-24 05:07:37
<?xml version="1.0" encoding="GBK"?>
<root>
<line lineCode="1" lineName="line1" speed="50km/h">
<road lineInCode="4" roadCode ="62" roadName ="xianfenglu" sectionLong ="1000" opCycle="240" splitCoordPhase="2" phaseDiff="10" >
<stages number="3">
<stage stageCode="1" stageGreen="0" minGreen="0" maxGreen="0" yellow="0" redClear="0" phases="0"></stage>
<stage stageCode="2" stageGreen="50" minGreen="0" maxGreen="0" yellow="0" redClear="0" phases="0"></stage>
</stages>
</road>

<road lineInCode="3" roadCode ="63" roadName ="huaihailu" sectionLong ="2000" opCycle="240" splitCoordPhase="2" phaseDiff="20" >
<stages number="5">
<stage stageCode="1" stageGreen="0" minGreen="0" maxGreen="0" yellow="0" redClear="0" phases="0"></stage>
<stage stageCode="2" stageGreen="0" minGreen="0" maxGreen="0" yellow="0" redClear="0" phases="0"></stage>

</stages>
</road>

<road lineInCode="2" roadCode ="64" roadName ="zhejianglu" sectionLong ="3000" opCycle="240" splitCoordPhase="3" phaseDiff="30" >
<stages number="4">
<stage stageCode="1" stageGreen="0" minGreen="0" maxGreen="0" yellow="0" redClear="0" phases="0"></stage>
<stage stageCode="2" stageGreen="0" minGreen="0" maxGreen="0" yellow="0" redClear="0" phases="0"></stage>

</stages>
</road>
</line>
</root>

我是新手,请问这样的xml文件有这样的写法吗?如果是读这样的文件,该怎么读,谁能给个详细的读每个属性值的例子?谢谢了
...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenzhenNBA 2009-11-25
  • 打赏
  • 举报
回复
XML文件和HTML文件放在服务器的同一个目录测试即可,
shenzhenNBA 2009-11-25
  • 打赏
  • 举报
回复
看看高率的程序,绝对的原创,

1,客户端的JavaScript不能写服务器上的XML文件,因为这会引起危险的安全问题;
2,客户端的JavaScript读取服务器上的XML文件,首先假设在服务器上存在:
(1)文件名VisitUser.xml
(2)XML文件结构:
--------------------------------------------------------------------
<?xml version="1.0" encoding="gb2312"?>
<visiter>
<area areaid="shenzhen">
<areaname>shenzhen </areaname>
<user userid="001">
<name>xiaoM </name>
<sex>boy </sex> <
jobtitle>web </jobtitle>
<userip>192.168.1.1 </userip>
<addtime>2009-02-17 15:30:20 </addtime>
</user>
<user userid="002">
<name>BBC </name>
<sex>boy </sex>
<jobtitle>web2.0 </jobtitle>
<userip>192.168.1.151 </userip>
<addtime>2009-02-19 15:30:20 </addtime>
</user>
</area>
<area areaid="guangzhou">
<areaname>guangzhou </areaname>
<user userid="003"> <name>Arian </name>
<sex>boy </sex>
<jobtitle>WEB2.0 </jobtitle>
<userip>192.168.1.151 </userip>
<addtime>2009-2-17 10:57:09 </addtime>
</user>
</area>
</visiter>
--------------------------------------------------------------------
HTML文件(index.htm)为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>TEST</title>
</head>
<style type="text/css">
body,td,input{font-family:verdana,Arial; font-size:12px; font-weight:normal;}
span{font-family:"Arial black",verdana; font-size:16px; font-weight:bold;}
a:link{font-family:verdana,Arial; font-size:12px; font-weight:normal; color:#FF6600; text-decoration:none;}
a:visited{font-family:verdana,Arial; font-size:12px; font-weight:normal; color:#FF6600; text-decoration:none;}
a:hover{font-family:verdana,Arial; font-size:12px; font-weight:normal; color:#CC0000; text-decoration:none;}
</style>
<body>
<p>
<b>created: </b>2009-04-15;<br>
<b>athor:</b>shenzhenNBA
</p>
<script language="javascript" type="text/javascript">
function GetXMLData(XMLFileName){
var xmlDoc;
var xmlFile;
var ieFlag="ie";
xmlFile=XMLFileName;
if (window.ActiveXObject)
{
var activeXNameList=new Array("MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XMLDOM","MSXML.DOMDocument");
for(var h=0;h<activeXNameList.length;h++)
{
try{
xmlDoc=new ActiveXObject(activeXNameList[h]);
}catch(e){
continue;
}
if(xmlDoc)
{break; }
}

xmlDoc.async=false;
xmlDoc.load(xmlFile);
ieFlag="ie";
}else if(document.implementation && document.implementation.createDocument){
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async=false;
xmlDoc.load(xmlFile);
ieFlag="other";
}else{
alert("Can not create XML DOM Document object in your IE.\nMaybe use Microsoft or FireFox or Netscape IE will better.");
}

var strResult="";
var subNode="";
var subNode2="";
var attrib="";
if(ieFlag=="ie")
{
var arealist=xmlDoc.documentElement.getElementsByTagName("area");
for (var i=0; i< arealist.length; i++)
{
try{
strResult=strResult + "<b>"+arealist[i].childNodes[0].text+"</b>, ";
}catch(e){ }
try{
var userlist=arealist[i].getElementsByTagName("user");
for(var t=0;t<userlist.length;t++)
{
attrib+="<b>"+userlist[t].getAttribute("userid")+"</b>, ";
subNode+="<b>"+userlist[t].firstChild.text+"</b>, ";
subNode2+="<b>"+userlist[t].childNodes[2].text+"</b>, ";
}
}catch(e){ }
}
}

if(ieFlag=="other")
{
var arealist=xmlDoc.getElementsByTagName("area");
for(var j=0;j<arealist.length;j++)
{
try{
strResult =strResult+"<b>"+ arealist[j].getElementsByTagName("areaname")[0].firstChild.nodeValue+"</b>, ";
}catch(e){}
try{
var userlist=arealist[j].getElementsByTagName("user");
for(var k=0;k<userlist.length;k++)
{
attrib=attrib+"<b>"+userlist[k].getAttribute("userid")+"</b>, ";
subNode=subNode+"<b>"+userlist[k].getElementsByTagName("name")[0].childNodes[0].nodeValue+"</b>, ";
subNode2=subNode2+"<b>"+userlist[k].getElementsByTagName("jobtitle")[0].firstChild.nodeValue+"</b>, ";
}
}catch(e){}
}
}
document.write("Exist area : "+strResult);
document.write("<br>AttributeValue(userid): "+attrib);
document.write("<br>subNodeValue(Name) : "+subNode);
document.write("<br>subNodeValue2(Jobtitle) : "+subNode2);
}
GetXMLData("VisitUser.xml");
</script>
</body>
</html>
hitlcyu19 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kingwolf_javascript 的回复:]
http://topic.csdn.net/u/20091124/14/7bf199fd-7a3a-46bc-b134-d44cad53c039.html?seed=641911037&r=61411346#r_61411346
[/Quote]
3楼的资源可以看看
浴火_凤凰 2009-11-25
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20091124/14/7bf199fd-7a3a-46bc-b134-d44cad53c039.html?seed=641911037&r=61411346#r_61411346
zwd2005 2009-11-24
  • 打赏
  • 举报
回复
IE下好像有直接加载xml的js api。ff不知道有没有
不过可以用通用的方法来做,用XMLHttpRequest来读,读到后获取 request.responseXml即可。具体可以搜索XMLHttpRequest, ajax
sundotLei 2009-11-24
  • 打赏
  • 举报
回复
读取节点属性使用getAttribute方法

例如

alert(xmlObj.getElementsByTagName("line")[0].getAttribute("roadCode"));

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧