-1

我可以使用 jquery 的$.parseXML()函数来获取这样的 xml 值:

假设我想要book包含嵌套标签的标签,例如author和://使用来自http://msdn.microsoft.com/en-us/library/ms762271(v=vs.85).aspxprice的示例 XML var tag = $(" #tag").val();//“书” var tags = $xml.find(tag); 变量 res = [];

tags.each(function(ind, elm){

    res.push($(elm).text());

});

console.log(res) 

Array[12]
    0: "↵      Gambardella, Matthew↵      XML Developer's Guide↵      Computer↵      44.95↵      2000-10-01↵      An in-depth look at creating applications ↵      with XML.↵   "
    1: "↵      Ralls, Kim↵      Midnight Rain↵      Fantasy↵      5.95↵      2000-12-16↵      A former architect battles corporate zombies, ↵      an evil sorceress, and her own childhood to become queen ↵      of the world.↵   "
    2: "↵      Corets, Eva↵      Maeve Ascendant↵      Fantasy↵      5.95↵      2000-11-17↵      After the collapse of a nanotechnology ↵      society in England, the young survivors lay the ↵      foundation for a new society.↵   "
    3: "↵      Corets, Eva↵      Oberon's Legacy↵      Fantasy↵      5.95↵      2001-03-10↵      In post-apocalypse England, the mysterious ↵      agent known only as Oberon helps to create a new life ↵      for the inhabitants of London. Sequel to Maeve ↵      Ascendant.↵   "
    4: "↵      Corets, Eva↵      The Sundered Grail↵      Fantasy↵      5.95↵      2001-09-10↵      The two daughters of Maeve, half-sisters, ↵      battle one another for control of England. Sequel to ↵      Oberon's Legacy.↵   "
    5: "↵      Randall, Cynthia↵      Lover Birds↵      Romance↵      4.95↵      2000-09-02↵      When Carla meets Paul at an ornithology ↵      conference, tempers fly as feathers get ruffled.↵   "
    6: "↵      Thurman, Paula↵      Splish Splash↵      Romance↵      4.95↵      2000-11-02↵      A deep sea diver finds true love twenty ↵      thousand leagues beneath the sea.↵   "
    7: "↵      Knorr, Stefan↵      Creepy Crawlies↵      Horror↵      4.95↵      2000-12-06↵      An anthology of horror stories about roaches,↵      centipedes, scorpions  and other insects.↵   "
    8: "↵      Kress, Peter↵      Paradox Lost↵      Science Fiction↵      6.95↵      2000-11-02↵      After an inadvertant trip through a Heisenberg↵      Uncertainty Device, James Salway discovers the problems ↵      of being quantum.↵   "
    9: "↵      O'Brien, Tim↵      Microsoft .NET: The Programming Bible↵      Computer↵      36.95↵      2000-12-09↵      Microsoft's .NET initiative is explored in ↵      detail in this deep programmer's reference.↵   "
    10: "↵      O'Brien, Tim↵      MSXML3: A Comprehensive Guide↵      Computer↵      36.95↵      2000-12-01↵      The Microsoft MSXML3 parser is covered in ↵      detail, with attention to XML DOM interfaces, XSLT processing, ↵      SAX and more.↵   "
    11: "↵      Galos, Mike↵      Visual Studio 7: A Comprehensive Guide↵      Computer↵      49.95↵      2001-04-16↵      Microsoft Visual Studio 7 is explored in depth,↵      looking at how Visual Basic, Visual C++, C#, and ASP+ are ↵      integrated into a comprehensive development ↵      environment.↵   "
    length: 12

无论如何我可以得到那些文本字符串所在的节点的名称,所以我可以打印类似的东西

author: Gambardella, Matthew
title:  XML Developer's Guid

编辑: 现在我正在使用类似的东西:

tags.each(function(ind, elm){
    res[ind] = res[ind] || [];
    for (var i = 0; i <= elm.childNodes.length; i++){
             res[ind][elm.childNodes[i]] = elm.childNodes[i].textContent;
         }

});
console.dir(res);

But it's not quite working
4

1 回答 1

0

最后,这似乎很适合给我一个对象,每个嵌套节点都有键:值对。虽然当然不是递归的;

tags.each(function (ind, elm) {

    for (var i = 0; i < elm.childNodes.length; i++) {
        //test if it is not a 
        if (/^\s+$/.test(elm.childNodes[i].textContent) == false) {

            res[ind] = res[ind] || {}
            res[ind][elm.childNodes[i].localName] = elm.childNodes[i].textContent;

        }
    }

});
于 2013-10-03T17:59:53.170 回答