var dom_mainMenu=new ActiveXObject("Msxml2.DOMDocument");dom_mainMenu.async = false;dom_mainMenu.load("test.xml");test.xml:
<configuration>
<main img="../Images/bar_bottom_ico_home.gif" id="m_HrManager" text="人事管理" simpleDes="User home page">
<sub id="m_favorite" img="../Images/ico_16_123.gif" text="我的Library" navigateTo=""/>
<sub id="m_EventView2" img="../Images/ico_18_adminReports.gif" text="系统事件" navigateTo=""/>
<sub id="m_EventRuleSetting2" img="../Images/ico_16_134.gif" text="事件规则" navigateTo=""/>
<sub id="m_AlertRuleSetting2" img="../Images/ico_16_1010.gif" text="报警规则" navigateTo=""/>
<sub id="m_alertLogs2" img="../Images/ico_18_2020.gif" text="报警日志" navigateTo=""/>
</main>
</configuration>
var nodes = dom_mainMenu.selectSingleNode("//main[@id='" + mainId + "']");
for(var i = 0;i<nodes.childNodes.length;i++)
{
alert(nodes.childNodes[i].getAttribute("img"));
}
<configuration>
<main img="../Images/bar_bottom_ico_home.gif" id="m_HrManager" text="人事管理" simpleDes="User home page">
<sub id="m_favorite" img="../Images/ico_16_123.gif" text="我的Library" navigateTo=""/>
<sub id="m_EventView2" img="../Images/ico_18_adminReports.gif" text="系统事件" navigateTo=""/>
<sub id="m_EventRuleSetting2" img="../Images/ico_16_134.gif" text="事件规则" navigateTo=""/>
<sub id="m_AlertRuleSetting2" img="../Images/ico_16_1010.gif" text="报警规则" navigateTo=""/>
<sub id="m_alertLogs2" img="../Images/ico_18_2020.gif" text="报警日志" navigateTo=""/>
</main>
</configuration>
var nodes = dom_mainMenu.selectSingleNode("//main[@id='" + mainId + "']");
for(var i = 0;i<nodes.childNodes.length;i++)
{
alert(nodes.childNodes[i].getAttribute("img"));
}
用nodeValue属性读出
treearray[0] = new tree_node("A","#","root","_self");treearray[1] = new tree_node("A.a","#",treearray[0],"_self");
treearray[2] = new tree_node("A.b","#",treearray[0],"_self");
这样的话数据就必须得写死 我想把这棵树做成活的 也就是数据是从xml文件里读进来
我写了一个,是二级的 这样的
<?xml version="1.0" ?>
<root>
<className id="1">
<a>1234</a>
<b>5.95</b>
<c>100</c>
</className>
<className id="2">
<a>6234</a>
<b>22.00</b>
<c>10</c>
</className>
</root>
读取的时候我用了两个循环做的,我没想出来要是xml文档是n级的该怎么写读取???
字节点还有孙子节点呢?? 不懂了!!郁闷! 闹心! 不爽!
中的树是你的吗?怎么连节点定义的形式都一样?读取xml文档可通过DOMDocument对象,不过我不知道ie以外的浏览器是否都能支持
因此我只用js自行遍历
// 遍历xml对象
function tree(Element,debug) {
var buffer = "";
var node = "";
if(Element.nodeType != 3) {
node = Element;
buffer += onElement(Element,debug);
}
if(Element.nodeType == 3)
buffer += onData(Element);
if(Element.hasChildNodes) {
for(var i=0;i<Element.childNodes.length;i++) {
buffer += tree(Element.childNodes(i),debug);
}
}
if(node)
buffer += endElement(node,debug);
return buffer;
}/***** 以下三个函数请根据需要自行修改 *****/
// 遍历xml对象--节点开始
function onElement(Element,debug) {
var buffer = (debug ? "<" : "<") + Element.nodeName;
n = Element.attributes.length
if(n>0) { // 若该节点有参数
for(var i=0;i<n;i++)
buffer += ' ' + Element.attributes(i).name + '=\"' + Element.attributes(i).value + '"';
}
buffer += debug ? ">" : ">";
return buffer;
}// 遍历xml对象--节点结束
function endElement(Element,debug) {
return (debug ? "</" : "</") + Element.nodeName + (debug ? "><br>" : ">");
}// 遍历xml对象--节点数据
function onData(Element) {
return Element.nodeValue
}