使用XML创建无序列表

时间:2014-02-27 01:42:26

标签: javascript jquery html xml xslt

我需要一些关于JavaScript的帮助,我已经创建了一个XML文件,我试图用JavaScript显示所有节点名称,现在我尝试用以下方式将它显示在无序列表中,如下所示,所有这些都需要用JavaScript而不是jquery来完成。我正在附上现场小提琴

Fiddle

bookstore 
   |
   |__book 
   |    |_____title
   |    |_____author
   |    |_____year
   |    |_____price
   |
   |__book 
   |
   |__book 
   |
   |__book  

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book category="cooking">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="children">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="web">
        <title lang="en">XQuery Kick Start</title>
        <author>James McGovern</author>
        <author>Per Bothner</author>
        <author>Kurt Cagle</author>
        <author>James Linn</author>
        <author>Vaidyanathan Nagarajan</author>
        <year>2003</year>
        <price>49.99</price>
    </book>
    <book category="web" cover="paperback">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

谢谢

1 个答案:

答案 0 :(得分:1)

这是一个简单的逻辑。对于每个节点,您必须生成:

html = "<li>"+node.nodeName;

如果node有childNodes(只考虑元素节点类型而不是文本等),那么

html += "<ul>"
html += html from recursive calls for every childNode
html += "</ul>"

最后关闭li标签

html += "</li>

或者,您也可以为所有元素childNodes生成html,并在需要时附加到父html。

检查更新后的小提琴:http://jsfiddle.net/32eVr/7/