2

我正在尝试解析以下 XML:

<catalog>
   <ns:book>
       <author>Author</author>
   </ns:book>
</catalog>

我进行了广泛的研究,发现了以下(过去的)解决方案,但目前它们都不能在带有 jQ​​uery 1.8 的 Chrome 24 中使用

  $(xml).find("ns\\:book").each(function()
  {
    $("#output").append($(this).find("author").text() + "<br />");
  });

也不

  $(xml).find("book").each(function()
  {
    $("#output").append($(this).find("author").text() + "<br />");
  });

也不

  $(xml).find("[nodeName=ns:book]").each(function()
  {
    $("#output").append($(this).find("author").text() + "<br />");
  });

在我的研究中,这似乎主要是 chrome 问题,而不是 jQuery 问题。有公认的解决方案吗?是否有更好的 js 库用于 XML 解析?

4

1 回答 1

1

我今天刚遇到同样的问题。使用 jQuery 1.8.3 和 Chrome 23,我注意到 2 种情况:

//Data is a string representing XML
var data = "<catalog><ns:book><author>Author</author></ns:book></catalog>";

情况1

//Case 1
var xml = $.parseXML(data); 
//xml is a XmlDocument
$(xml).find("book");
//$(xml) is a Document
//works directly, can't seem to be able to use namespace.

案例 2。

var xml = $(data);
//xml is an Object
$(xml).find('ns\\:book')
//works just fine
于 2012-11-16T14:54:19.180 回答