浏览 14063 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-26
JavaScript 解析 XML 时如何通过名称直接取到值? xml 代码
同级的Attribute,有没有办法通过类似于 getXXXByName("aa") 得到0, getXXXByName("bb") 得到1呢? 而不是通过 java 代码
有何办法?我现在先if判断处理之,再看有没有好方法? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-26
这样的就应该设计成
<aa>0</aa> <bb>1</bb> <cc>2</cc> |
|
返回顶楼 | |
发表时间:2007-01-26
不要去想当然好不好,如果存在这样的情况,你怎么办,大家都想有个好的处理方式这是肯定的:)
找了些XPath的内容,在研究学习中。。。 http://developer.mozilla.org/en/docs/Introduction_to_using_XPath_in_JavaScript http://glazkov.com/archive/2004/04/06/168.aspx |
|
返回顶楼 | |
发表时间:2007-01-29
xpath 是不是应该这么写?
//root/Attribute[@name="aa"] |
|
返回顶楼 | |
发表时间:2007-01-29
这里有xpath的例子
http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 这里有介绍 http://ivanl.iteye.com/blog/39826 |
|
返回顶楼 | |
发表时间:2007-01-29
if IE, try:
var jsXML = new ActiveXObject("MSXML2.DOMDocument.4.0"); jsXML.async = false; jsXML.load("my.xml"); document.getElementById("myDivId").value = jsXML.xml; |
|
返回顶楼 | |
发表时间:2007-01-30
这样 ?
node.selectSingleNode("//root/Attribute[@name='aa']").attributes.getNamedItem("value").nodeValue; 汗。。 |
|
返回顶楼 | |
发表时间:2007-01-31
knight 写道 这样 ?
node.selectSingleNode("//root/Attribute[@name='aa']").attributes.getNamedItem("value").nodeValue; 汗。。 IE下可以这么写: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <xml id="myData"> <root> <Attribute name="aa" value="0" /> <Attribute name="bb" value="1" /> <Attribute name="cc" value="2" /> <Operation name="initAllCounter" return="boolean"/> </root> </xml> </HEAD> <script language="javascript"> function getValueFromNode(nodeName , conditionName , attrName) { var node = myData.selectSingleNode("/root/" + nodeName + "[@name='"+ conditionName +"']"); if (null == node) { return; } alert(node.getAttribute(attrName)); } function getNodes(nodeName , attrName) { var nodes = myData.selectNodes("//" + nodeName); for (var i = 0; i < nodes.length; i++ ) { alert(nodes[i].getAttribute(attrName)); } } </script> <BODY> <input type="button" value="获取nodeName=Attribute的value" onclick="getNodes('Attribute' , 'value')"> <input type="button" value="获取name='aa'的value" onclick="getValueFromNode('Attribute' , 'aa' , 'value')"> <input type="button" value="获取name='bb'的value" onclick="getValueFromNode('Attribute' , 'bb' , 'value')"> <input type="button" value="获取name='cc'的value" onclick="getValueFromNode('Attribute' , 'cc' , 'value')"> <input type="button" value="获取name='initAllCounter'的value" onclick="getValueFromNode('Operation' , 'initAllCounter' , 'return')"> </BODY> </HTML> |
|
返回顶楼 | |