【问题标题】:Get all hierarchical root elements name for an xml child获取 xml 子项的所有分层根元素名称
【发布时间】:2015-10-03 03:56:21
【问题描述】:

我有一个如下的 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Root>
    <Menu title="Menu 1" url="root_pages.php?id=1">
        <SubMenu title="sub 1" url="pages.php?id=1" />
        <SubMenu title="sub 2" url="pages.php?id=2" />
        <SubMenu title="sub 3" url="pages.php?id=3" />
        <SubMenu title="sub 4" url="pages.php?id=4" />
        <SubMenu title="sub 5" url="pages.php?id=5" />
    </Menu>
    <Menu title="Menu 2" url="root_pages.php?id=2">
        <SubMenu title="sub 6" url="pages.php?id=6" />
        <SubMenu title="sub 7" url="pages.php?id=7" />
    </Menu>
    <Menu title="Menu 3" url="root_pages.php?id=3">
    </Menu>
</Root>

现在我正在尝试为每个元素做一些事情,我可以获得完整的层次结构路径(如面包屑)。

比如我取&lt;SubMenu title="sub 3&gt;这个元素,结果会是:root/Menu 1/sub3

有什么简单易行的方法吗?

谢谢, 苏洛迪普

【问题讨论】:

  • 也许我一直生活在一块岩石之下,错过了一些东西,但是......您使用的是什么 IDE,它允许 JQuery 与 Java 结合使用?据我所知,JQuery 一直是 Javascript 实现。

标签: java jquery xml


【解决方案1】:

var data = $.parseXML($("pre").html());
var xml = $(data.documentElement);
var res = "";
var elem = xml.find("[title='sub 3']");
elem.parents().add(elem).each(function(i, el) {
  res += ($(el).attr("title") || el.tagName) + "/"
});
$("body").prepend(res);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<pre>
<Root>
    <Menu title="Menu 1" url="root_pages.php?id=1">
        <SubMenu title="sub 1" url="pages.php?id=1"></SubMenu>
        <SubMenu title="sub 2" url="pages.php?id=2"></SubMenu>
        <SubMenu title="sub 3" url="pages.php?id=3"></SubMenu>
        <SubMenu title="sub 4" url="pages.php?id=4"></SubMenu>
        <SubMenu title="sub 5" url="pages.php?id=5"></SubMenu>
    </Menu>
    <Menu title="Menu 2" url="root_pages.php?id=2">
        <SubMenu title="sub 6" url="pages.php?id=6"></SubMenu>
        <SubMenu title="sub 7" url="pages.php?id=7"></SubMenu>
    </Menu>
    <Menu title="Menu 3" url="root_pages.php?id=3">
    </Menu>
</Root>
</pre>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2022-01-04
    • 2012-05-28
    • 1970-01-01
    • 2011-05-15
    • 2012-03-06
    • 2011-05-06
    相关资源
    最近更新 更多