关于Namespace的selectNodes("//x:aa/x:bb"),如果前缀x换了,那怎么办?

Lostinet 2002-04-28 12:20:49
条件是:已经知道x的namespace
...全文
20 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
saucer 2002-04-28
xmldoc.setProperty("SelectionNamespaces",
"xmlns:x='http://myserver.com'");
回复
saucer 2002-04-28
对不起,应该是

alert(nodes[i].prefix + "-" + nodes[i].baseName +"-" + nodes[i].namespaceURI);
回复
saucer 2002-04-28
只要这里的两个x不是属于不同的命名空间就成,而且XMLDOM不太看前缀,譬如

<root xmlns:x='http://myserver2.com'>
<x:a>
<x:b xmlns:x='http://myserver.com'>
</x:b>
</x:a>
</root>

var xmldoc = new ActiveXObject("MSXML2.DOMDOCUMENT.4.0");
xmldoc.async = false;
xmldoc.load("some.xml");
xmldoc.setProperty("SelectionNamespaces",
"xmlns:x2='http://myserver2.com' xmlns:x='http://myserver.com'");
var nodes = xmldoc.selectNodes("//x2:a[x:b]");
for (var i=0; i < nodes.length; i++)
alert(nodes[0].prefix + "-" + nodes[i].baseName +"-" + nodes[i].namespaceURI);

显示:
x-a-http://myserver2.com
回复
Lostinet 2002-04-28
那么如果已经有其他的了x了呢?会冲突么?
回复
saucer 2002-04-28
var xmldoc = new ActiveXObject("MSXML2.DOMDOCUMENT.4.0");
xmldoc.async = false;
xmldoc.load("some.xml");
xmldoc.setProperty("SelectionNamespaces",
"xmlns:x='http://myserver.com'");
var nodes = xmldoc.selectNodes("//x:aa/x:bb");

nodes[0].prefix;
nodes[0].baseName;
nodes[0].namespaceURI;
回复
Lostinet 2002-04-28
可以说详细点么?
--------------------
如果在dom中,我知道了根节点的某个namespace,那么我可以得到prefix么?
回复
相关推荐
发帖
XML/XSL
创建于2007-09-28

8824

社区成员

XML/XSL相关问题讨论专区
申请成为版主
帖子事件
创建了帖子
2002-04-28 12:20
社区公告
暂无公告