你的xml中有#,我这边解析不出,故给删了<html>
<body>
<SCRIPT>
function fnCheck(){
var doc=oMetaData.XMLDocument;
var ARCXML_item=doc.getElementsByTagName("ARCXML")[0];
var RESPONSE_item=ARCXML_item.getElementsByTagName("RESPONSE")[0];
var FEATURES_item=RESPONSE_item.getElementsByTagName("FEATURES")[0];
var MULTIPOINT_item=FEATURES_item.getElementsByTagName("MULTIPOINT")[0];var FIELDS_item=MULTIPOINT_item.getElementsByTagName("FIELDS")[0];
var POINT_item=MULTIPOINT_item.getElementsByTagName("POINT")[0];document.getElementById("show").value="<a onclick=\"test('"+POINT_item.getAttribute("x")+"','"+POINT_item.getAttribute("y")+"')\">"+FIELDS_item.getAttribute("OBJPOS")+" </a> ";}
</SCRIPT>
<XML ID="oMetaData">
<ARCXML>
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" />
<MULTIPOINT>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" /> <POINT x="104.060846680346" y="30.6786616511078"/>
</MULTIPOINT>
</FEATURE>
<FEATURECOUNT count="5" hasmore="true" />
</FEATURES>
</RESPONSE>
</ARCXML> </XML><INPUT TYPE=button VALUE="Test" onclick="fnCheck()">
<textarea cols="40" rows="4" id="show"></textarea>
</body>
</html>
<body>
<SCRIPT>
function fnCheck(){
var doc=oMetaData.XMLDocument;
var ARCXML_item=doc.getElementsByTagName("ARCXML")[0];
var RESPONSE_item=ARCXML_item.getElementsByTagName("RESPONSE")[0];
var FEATURES_item=RESPONSE_item.getElementsByTagName("FEATURES")[0];
var MULTIPOINT_item=FEATURES_item.getElementsByTagName("MULTIPOINT")[0];var FIELDS_item=MULTIPOINT_item.getElementsByTagName("FIELDS")[0];
var POINT_item=MULTIPOINT_item.getElementsByTagName("POINT")[0];document.getElementById("show").value="<a onclick=\"test('"+POINT_item.getAttribute("x")+"','"+POINT_item.getAttribute("y")+"')\">"+FIELDS_item.getAttribute("OBJPOS")+" </a> ";}
</SCRIPT>
<XML ID="oMetaData">
<ARCXML>
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" />
<MULTIPOINT>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" /> <POINT x="104.060846680346" y="30.6786616511078"/>
</MULTIPOINT>
</FEATURE>
<FEATURECOUNT count="5" hasmore="true" />
</FEATURES>
</RESPONSE>
</ARCXML> </XML><INPUT TYPE=button VALUE="Test" onclick="fnCheck()">
<textarea cols="40" rows="4" id="show"></textarea>
</body>
</html>
解决方案 »
- 大家帮我看下,为什么我的复选框不出现?
- onSubmit=“return false”不能阻止表单跳转
- 遨游浏览器上,怎么用js让它关闭时弹出提示,像ie那样
- 这段代码通过alert得到的值是null。
- 怎么在客户端机器上得到服务器当前时间? [服务器不受控制]
- 求jquery上传插件
- 怎样用javascript从数据库里读数啊
- 在线急问!如何取鼠标点击区域的层的绝对坐标位置!up有分!
- 一个关于坐标的问题
- 求教 Generator-Clam 淘宝前端工具 yo clam 执行失败
- js中用+=连接字符串会不会很耗内存 如下rightDataLength=7000的情况好像很慢阿
- 很无奈的一个问题
<ARCXML version="1.1">
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" SHAPE="[Geometry]" />
<MULTIPOINT>
<POINT x="104.060846680346" y="30.6786616511078"/>
</MULTIPOINT>
</FEATURE>
<FEATURECOUNT count="5" hasmore="true" />
</FEATURES>
</RESPONSE>
</ARCXML>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
</head>
<body>
<input type="button" value="text XML" onclick="testXML()" />
</body>
</html><script type="text/javascript">
function getXMLdoc()
{
var xmlDoc=null;
if (window.ActiveXObject)
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
else
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async=false;
return xmlDoc;
}
function testXML()
{
var xmlFile="XMLFile1.xml";//这是服务器端的路径,与此html文件放在同一目录下
var xmldoc=getXMLdoc();
xmldoc.load(xmlFile); var FIELDS=xmldoc.getElementsByTagName('FIELDS')[0].getAttribute('OBJPOS');
var p=xmldoc.getElementsByTagName('POINT')[0];
var x=p.getAttribute('x');
var y=p.getAttribute('y');
var linka=document.createElement("a");
linka.style.cursor='pointer';
linka.innerHTML=FIELDS;
linka.onclick=function(){test(x,y);}
document.body.appendChild(linka);
}function test(x,y)
{
alert("x="+x+"\r\ny="+y);
}
</script>
这是页面加载XML ,若要用ajax ,将oMetaData.XMLDocument换一下responseXML就可以了<html>
<body>
<SCRIPT>
function fnCheck(){
var doc=oMetaData.XMLDocument;
var ARCXML_item=doc.getElementsByTagName("ARCXML")[0];
var RESPONSE_item=ARCXML_item.getElementsByTagName("RESPONSE")[0];
var FEATURES_item=RESPONSE_item.getElementsByTagName("FEATURES")[0];
var FEATURE_item=FEATURES_item.getElementsByTagName("FEATURE")[0];
var MULTIPOINT_item=FEATURE_item.getElementsByTagName("MULTIPOINT")[0];var FIELDS_item=FEATURE_item.getElementsByTagName("FIELDS")[0];
var POINT_item=MULTIPOINT_item.getElementsByTagName("POINT")[0];document.getElementById("show").value="<a onclick=\"test('"+POINT_item.getAttribute("x")+"','"+POINT_item.getAttribute("y")+"')\">"+FIELDS_item.getAttribute("OBJPOS")+" </a> ";}
</SCRIPT>
<XML ID="oMetaData">
<ARCXML version="1.1">
<RESPONSE>
<FEATURES>
<FEATURE>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" />
<MULTIPOINT>
<POINT x="104.060846680346" y="30.6786616511078"/>
</MULTIPOINT>
</FEATURE>
<FEATURECOUNT count="5" hasmore="true" />
</FEATURES>
</RESPONSE>
</ARCXML>
</XML><INPUT TYPE=button VALUE="Test" onclick="fnCheck()">
<textarea cols="40" rows="4" id="show"></textarea>
</body>
</html>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" #SHAPE#="[Geometry]" #ID#="6" />
1.把xml保存成一个文件如a.xml,
2.修改里面的错误,去掉井号,还有FIELDS ID="6"的ID重复了,去掉。
3.写一个b.htm,内容如下:<script language="javascript">
function loadXML(xml){
var doc = null;
if (window.ActiveXObject){
doc = new ActiveXObject('Msxml2.DOMDocument');
doc.async=false;
doc.load(xml);
}
else if (document.implementation && document.implementation.createDocument){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",xml,false);
xmlhttp.send(null);
doc = xmlhttp.responseXML.documentElement;
}
return doc;
}function GetPointList(){
var doc = loadXML('a.xml');
if( doc == null)
return null;
//2.create data array
var pts = doc.getElementsByTagName('POINT');
if( pts == null || pts.length <= 0)
return null;
var count = pts.length;
var ret = new Array(count);
for(var i=0; i<count; i++){
ret[i] = new Array(2);
ret[i][0] = pts[i].getAttribute('x');
ret[i][1] = pts[i].getAttribute('y');
}
return ret;
}function ParseXML(o){
var pts = GetPointList();
var bHasRecord = (pts != null) && (pts.length >= 0);
var html = '';
if( bHasRecord ){
for(var i=0; i<pts.length; i++){
html += '<a href="#" onclick="test(\''+pts[i][0]+'\',\''+pts[i][1]+'\')">keywords </a> <br>';
}
}
o.innerHTML = html;
}function test(x,y){
alert('('+x+','+y+')');
}
</script>
<body onload="ParseXML(document.body)">
</body>
参考一下
<FEATURE>
<FIELDS ID="6" OBJCODE="5101050101020022" OBJNAME="abcd" DEPTCODE="51010042" DEPTNAME="efgh" MATERIAL="" GBCODE="51010500300101" OBJPOS="keywords" OBJSTATE="ok" USESTATE="on" CRDATE="1146009600000" CHDATE="-2211753600000" MAPSCALE="500" MEMO="" #SHAPE#="[Geometry]" #ID#="6" />
<MULTIPOINT>
<POINT x="104.060846680346" y="30.6786616511078"/>
</MULTIPOINT>
</FEATURE> 这一部分是重复的不同的元素,怎么办呢?