将XML解析为UL

我试图使用JQuery解析sitemap.xml看起来像这样的HTML: http : //astuteo.com/slickmap/demo/

经过几个小时的努力,我觉得我真的需要一些正确方向的帮助。

它具有的主要模板是这样的,其中每个缩进是不同的目录级别:

 

我使用的是google sitemap.xml,如下所示:

http://meyers.ipalaces.org/sitemap_000.xml

  http://meyers.ipalaces.org/ 2011-02-26T09:32:18Z hourly 0.4   http://meyers.ipalaces.org/meyers/photos/Explorer 2011-02-26T09:31:33Z hourly 0.2  

我提出的方法避免设置css模板上的所有内容,但我只是专注于让它具有正确的级别:

它的作用是使URL的级别通过每个级别尝试基于先前级别创建列表。 所以使用示例www.example.com/brand/model/product/

它得到第一个[0]元素, www.example.com这是1级,所以它检查是否有ul[id=1] ,如果没有则运行create_ul并将其附加到#content 。 现在将一个li附加到它刚刚创建的ul级别1是“特殊的”,因为它必须首先创建,这就是为什么我在代码中有很多if level==1

对于下一个元素[1],它获得了2级的brand 。这次检查是否有li[id=www.example.com] ul[id=2]如果存在,它将创建一个然后附加一个liul

这个方法根本不适合我,如果说8级具有相同的id和4级的东西,它也会混乱。我只需要一个关于如何处理这个问题的新想法。

这是我现在的function,但我确定我应该废弃大部分代码:

 function create_ul(level, id, prev_id) { var ul = $('

我决定回复PHP解决方案而不是Javascript。 我正在使用这个PHP脚本: http : //www.freesitemapgenerator.com/xml2html.html

这是我的尝试。

基本上它使用数组来存储所有url的部分
例如,urlmytest.url.com/sub1/othersub2.html的处理方式如下:

 var map = ['mytest.url.com']['sub1']['othersub2.html']; 

这是可能的,因为javascript允许您使用字符串索引数组。

完整代码(只需替换你的parseXml函数并使用firebug在chrome或firefox上测试它):