Jquery read xml block

Jquery read xml block

本文关键字:block xml read Jquery      更新时间:2023-09-26

我读了这个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 = "";    
}

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

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

输出为

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

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

节点名称=打开 str=配置系统全局 cmd=配置系统全局

找到这个

节点名称=打开 str=配置系统接口 cmd=配置系统全局

> 节点名称=环境 str=p1 cmd=设置访问横幅禁用

节点名称=env str=p2 cmd=设置访问横幅禁用

节点名称=打开 str=配置系统全局cmd=设置访问横幅 禁用

节点名称=打开 str=配置系统接口 cmd=设置访问横幅禁用

节点名称=env str=p1 cmd=设置管理员并发启用

节点名称=env str=p2 cmd=set admin-并发启用

节点名称=env str=p1 cmd=设置管理员并发启用

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

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

谢谢

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

通过返回 node ,您将返回一个 true-ish 值,该值表示.each()循环应继续;返回 false 表示它不应继续到下一项。