gpt4 book ai didi

javascript - 递归地将嵌套的xml转换为嵌套的html

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:29 26 4
gpt4 key购买 nike

我想将嵌套的 xml 转换为嵌套的 ul li 结构。我已经写了所有的代码,但其中有一个错误。我花了一整天,但无法正常工作。错误可能非常简单。谁能调查一下并回复我。

<html>
<head>
<script type="text/javascript">
var str = ""; var temp = "";
function makeTree() {
treeUL = createNestedTree($('root'));
$("#tree").append(treeUL);
}

function createNestedTree(obj) {
if($(obj).children().size() != 0) {
str = str + "<li>" + $(obj).attr("name") + "</li><ul>";
$(obj).children("item").each(function() {
returnValue = createNestedTree($(this));
str = str + returnValue;
});

return str + "</ul>";
}
else {
temp = "<li>" + $(obj).attr("name") + "</li><ul></ul>";
return temp;
}
}
</script>
</head>

<body>
<!-- xml structure start -->
<root>
<item name="a">
<item name="d">
<item name="d"></item>
<item name="e"></item>
<item name="f"></item>
</item>
<item name="g"></item>
<item name="h"></item>
</item>
<item name="b"></item>
<item name="c"></item>
</root>
<!-- xml structure end -->

<a href="javascript:makeTree()">Make Tree</a>
<div id="tree"></div>
</body>
</html>​

fiddle 是 here

我在 html 中创建了 xml,因为我不知道如何将外部 xml 引用到 fiddle 中。但它在传递给函数时的行为与 xml 完全一样,因此没有问题。

最佳答案

尝试:

var makeTree = function makeTree(nodes) {
var $result = $('<ul>');

$.each(nodes, function (_, node) {
var
$li = $('<li>').text(node.getAttribute('name')).appendTo($result),
$children = $(node).children('item');

if ($children.length > 0) {
makeTree($children).appendTo($li);
}
});

return $result;
};

makeTree($('root').children('item')).appendTo('#tree');

演示:http://jsfiddle.net/8zeep/2/

关于javascript - 递归地将嵌套的xml转换为嵌套的html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com