0

我正在做一个 Phonegap 应用程序,我想在其中使用 xml 文件,即我想在 xml 中搜索特定节点。下面给出了我使用的 xml 文件。

<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">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
 </book>

在这里,我想搜索书籍的类别并显示该书的所有详细信息。即,如果我搜索类别“网络”,它将返回具有类别“网络”的书籍的详细信息。

提前致谢.....

4

2 回答 2

0
var xml = "<bookstore><book category='cooking'>aaaa</book></bookstore>";

var result = $(xml).find("book").text();

http://jsfiddle.net/JyyXt/

于 2012-07-20T09:16:09.633 回答
0

如果你不想使用任何 javascript 库,你可以试试这个:

<script type="text/javascript">
    function loadXMLString(txt) {
        if (window.DOMParser) {
            parser = new DOMParser();
            xmlDoc = parser.parseFromString(txt, "text/xml");
        } else // Internet Explorer
        {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.loadXML(txt);
        }
        return xmlDoc;
    }

    window.onload = function () {
        text = '<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">Learning XML</title>' 
               + '<author>Erik T. Ray</author>' 
               + '<year>2003</year>' 
               + '<price>39.95</price>' 
               + '</book>' 
               + '</bookstore>';

        xmlDoc = loadXMLString(text);

        x = xmlDoc.getElementsByTagName("book");
        for (i = 0; i < x.length; i++) {
            if (x[i].attributes["category"].value == "web") {
                var message = "";
                for (var j = 0; j < x[i].childNodes.length; j++) {
                    message += x[i].childNodes[j].nodeName + ':' + x[i].childNodes[j].textContent + '\n'
                }
                alert(message);
            }
        }
    }
</script>
于 2012-07-20T09:34:39.020 回答