var result = null
eval('result=['+$(xmlStr).find('people').map(function(){
return '{'+$('*',this).map(function(){
return $(this).attr('tagName') + ':"' + $(this).text() + '"'
}).get().join(',') + '}'
}).get().join('],[')+']')
alert(result)
//result是一个数组,如果有多个people节点,则为:[{name:"张三",address="北京"},{name:"李四",address="上海"}]
不好意思偏题了,以下是你要的结果:
var result = $(xmlStr).find('people').children().map(function(){
return $(this).attr('tagName')+'='+$(this).text()
}).get().join()
上面的都是jquery的写法:
javascript的话:
用COM操作:
object xmlDoc = new ActiveObject('msxml2')
xmlDoc.loadXml(xmlStr)
var pNode = xmlDoc.selectSignNode('people')
var result = ''
for(var node in pNode.selectNodes('*')){
result+=(result.length>0?',':'') + node.nodeName+'='+node.innerText
}
alert(reuslt)
或者用DOM操作:
<xml id='testXml' />
var result = ''
with(document.getElementById('testXml')){
innerHTML = xmlStr
for(var child in children){
result += ',' + child.tagName + '=' + child.innerText
}
if(result.length >0){
result = result.substring(1)
}
}
给你个函数,传Node,属性名进去获取属性值,兼容所有浏览器:function getAttributeValue (xmlNode,attrName){
if(!xmlNode)return ""
if(!xmlNode.attributes) return ""
if(xmlNode.attributes[attrName]!=null) return xmlNode.attributes[attrName].value
if(xmlNode.attributes.getNamedItem(attrName)!=null) return xmlNode.attributes.getNamedItem(attrName).value
return ""
}
获取 p1 的值,就是 getAttributeValue(p,"p1")
用jquery吧。var xmlDoc = $(data)
xmlDoc.find("a").each(function(i,o){
alert(i)//你会开f12的话写成console.log(o)也行
alert(o)
})
http://blog.csdn.net/pan_junbiao/article/details/7441003
比自己写简单。