使用jquery从xml文件输出内容

时间:2011-06-30 13:54:52

标签: jquery xml ajax parsing jquery-selectors

我正在编写一个jquery脚本时出现问题,因为我无法获取我想要的数据。

我有一个以下布局的xml文件(我只提供一个片段),

<page1>
  <title>First page</title>
  <description>Lorem ipsum</description>
  <image1 thumb='#'>images/image01.jpg</image1>
  <image2 thumb ='#'>images/image02.jpg</image2>
</page1>
<page2>
  <title>Second page</title>
  <description>Lorem ipsum</description>
  <image1 thumb='#'>images/image01.jpg</image1>
  <image2 thumb ='#'>images/image02.jpg</image2>
</page2>

现在我想找到一种根据标题值获取描述的方法。我的代码就像以下一样,我可以说出一些可怕的错误。

$(document).ready(function() {
  $.ajax({
  type: "GET",
  url: "xml_concept.xml",
  dataType: "xml",
  success: parseXml
  });  
});

function parseXml(xml) {
  $(xml).find("title":contains("First Page")) {
    $("#text-area").append('<div class="test-xml">' + $(this).text() + '</div>');
  }
}

我很确定这不是指我想要的,而是整个xml?如果正确,我如何选择我之后的标签内容并附加它们?我已经能够成功地解析内容但不能解决我正在设置的条件,所以我在考虑使用if语句或case / switch。

另一件事,我是否正确地假设我使用':contains'完全错误?

非常感谢您的帮助

2 个答案:

答案 0 :(得分:0)

问题出在这一行:

$(xml).find("Title":contains("O2 Brandroom"))

...特别是"Title"之后的冒号,这是无效的Javascript语法。

此代码的目的是使contains()位成为Title的同一选择器的一部分,因此请尝试将整个内容放在引号内:

$(xml).find("Title:contains('O2 Brandroom')")

答案 1 :(得分:0)

通过直接加载外部html内容而不是依赖于一个xml doc,我找到了一种更合适的方法来实现我想要的结果。