浏览 7111 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-01-26 关键字: JavaScript XML
JavaScript 解析 XML 时如何通过名称直接取到值? xml 代码
同级的Attribute,有没有办法通过类似于 getXXXByName("aa") 得到0, getXXXByName("bb") 得到1呢? 而不是通过 java 代码
有何办法?我现在先if判断处理之,再看有没有好方法? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间: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.javaeye.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>
|
|
| 返回顶楼 | |











