2

我读了这个 XML 文件:

<?xml version="1.0" encoding="utf-8" ?>
<parse version="beta" release='1'>
    **<env str="p1" open='config' close='end'/>
    <env str="p2" open='edit' close="next"/>**
    <open str="config system global" jmp="1">
        <set str="set hostname" nomr="hostname"></set>
    </open>
    <open  str="config system interface" jmp='6'>
        <open str="edit" norm="intfisdef" jmp='2'>
            <set str="set ip" norm="intfisip"/>
            <set str="set alias" norm="intnom"/>
            <open str="config secondaryip" jmp='0'>
                <open str="edit" norm="intfisindsecdef" jmp='1'> 
                    <set str="set ip" norm="intfisindsecip"/>
                </open>
            </open>
        </open>
    </open>
 </parse>

使用此功能:

function alertit2(jqueryObject) {
    jqueryObject.each(function() {
        node = (this);
        str = $(node).attr("str");
        NodeName = node.nodeName;
        console.log("Node Name=" + NodeName + "\nstr=" + str + "\ncmd=" + StringaComando);

        if (NodeName == "open" && StringaComando.substr(0, str.length) == str) {
            FindOpen++;
            alert ("find this");
            return node;
        }
    });
    StringaComando = "";    
}

我调用alertit2何时StringaComando有效(“配置系统全局”):,

if (FindOpen==0)
    var Figlio = alertit2($(XML).find('parse').children());
else
    alertit2($(Figlio));

输出是

节点名称=env str=p1 cmd=config 系统全局

节点名称=env str=p2 cmd=config 系统全局

节点名称=open str=config 系统全局 cmd=config 系统全局

找到这个

节点名称=open str=config 系统接口 cmd=config system global

> 节点名称=env str=p1 cmd=set access-banner disable

节点名称=env str=p2 cmd=set access-banner disable

节点名称=open str=config system global cmd=set access-banner disable

节点名称=open str=config 系统接口 cmd=set access-banner disable

节点名称=env str=p1 cmd=set admin-concurrent enable

节点名称=env str=p2 cmd=set admin-concurrent enable

节点名称=env str=p1 cmd=set admin-concurrent enable

我的问题:为什么我看到节点:Node *Name=env* str=p1 cmd=set access-banner disable

目的是一旦你找到“配置系统全局”继续解析包含在块中的开放集<open str=config system global...

谢谢

4

1 回答 1

1

当满足条件时,返回false而不是node.each()循环中的函数返回StringaComando

通过返回node,您将返回一个真实的值,表明.each()循环应该继续;返回false信号,表示它不应该继续下一个项目。

于 2013-10-24T13:40:00.270 回答