![]() |
购物专题 | 基金专题 | 性专题 | 饮食专题 | 教育专题 | 生活大参考 | 园林资讯 | 园艺库 | 健康专题 | |
| 论文专题 | 家庭养花 | 园林景观 | 盆景奇石 | 激情图库 | 农业资料库 | 园林古建 | 英文站 | 花卉栽培 |
有请广大高手
希望最好能用Java或者javascript来实现
小弟先在这里贴个最简单的递归,抛砖引玉,闪先:)
<SCRIPT LANGUAGE=javascript>
function loader()
{
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
var rootNode;
xmlDoc.load("nav.xml");
if (xmlDoc.readyState==4)
{
if(xmlDoc.parseError.errorCode!=0)
{
alert(xmlDoc.parseError.reason)
}
else
{
rootNode = xmlDoc.documentElement;
scanXml(rootNode);
}
}
}
function scanXml(xmlNode)
{
if (xmlNode.hasChildNodes())
{
var nodeList = xmlNode.childNodes;
for(var i=0;i<nodeList.length;i++)
{
scanXml(nodeList[i]);
}
}
else
{
// do something
}
}
</SCRIPT>
---------------------------------------------------------------
//占个位置先^_^先序遍历
var oRoot=xmlDoc.documentElement //Root
while(null!=oNode){
visit(node) //visit node
if(oNode.hasChildNodes()){
oNode=oNode.firstChild
}
else{
while(null!=oNode && null==oNode.nextSibling){
oNode=oNode.parent
}
if (null!=oNode){
oNode=oNode.nextSibling
}
else{
break
}
}
}
---------------------------------------------------------------
少一句oNode=oRoot在while前面
---------------------------------------------------------------
oNode=oNode.parent-->oNode=oNode.parentNode
信手一写,BUG一双....
---------------------------------------------------------------
最好的方法是用digester,是基于sax实现的:
http://jakarta.apache.org/struts/doc-1.0.2/api/org/apache/struts/digester/package-summary.html#package_description
---------------------------------------------------------------
ibm网站上的x-udom上有例子。
---------------------------------------------------------------
还要找属性啊?怎么不加上呢
---------------------------------------------------------------
大写意:
creat DOM
DOM.load(file of xml)
---------------------------------------------------------------
上有误!
大写意:
creat DOM
DOM.load(file of xml)
xmlnodeset=selectnode(")
count=length(xmlnodeset)
for i=1 to count
get nodetype of xmlnodeset.item(i)
get nodename of xmlnodeset.item(i).....
(属性值要根据节点的类型判断有无
有->count;for j=1 to count->一个一个的提取)
end
---------------------------------------------------------------
//你看不到堆栈了,因为dom实现的不是单向链表,节点可以回溯到上一层,不必借助堆栈来实现.后根遍历:
var oRoot=xmlDoc.documentElement //Root
while(null!=oNode){
if(oNode.hasChildNodes()){
oNode=oNode.firstChild
}
else{
visit(node) //visit node
while(null!=oNode && null==oNode.nextSibling){
oNode=oNode.parent
if (null != oNode){
visit(node) //visit parent node
}
}
if (null!=oNode){
oNode=oNode.nextSibling
}
else{
break
}
}
}
浙ICP备 :07003766号 Copyright © 2001-2007 JUBAO163,All rights reserved. |