如何解析具有重复节点的XML?

时间:2018-09-19 15:58:34

标签: jquery xml xml-parsing

这是我的XML文件。那里有三个author节点:

<bookstore>    
  <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>    
</bookstore>

当我使用var author = $(this).find('author');时,author将所有作者保留在一个字符串中。我想将其作为数组。有什么办法吗?

var author = $(this).find('author').toArray();

返回长度为0的数组

1 个答案:

答案 0 :(得分:1)

find('author')将使您返回一个jQuery对象,该对象包含节点集合。这样,您可以使用each()遍历它们:

var authors = $(this).find('author');
authors.each(function() {
  console.log($(this).text());
});

如果您特别想要所有值的数组,则可以使用map()

var authors = $(this).find('author').map(function() {
  return $(this).text();
}).get();