jquery - 我如何使用 jQuery 来解析 XML,就像我在这里一样

标签 jquery xml

这个(或其某些变体)是由我的 PHP 脚本输出的。请注意,某些标签在不同的上下文中使用相同的名称:

<conversations>
  <status>1</status>
  <conversation>
    <open>0</open>
    <status>1</status>
    <priority>1</priority>
  </conversation>
  <conversation>
    <open>1</open>
    <status>0</status>
    <priority>0</priority>
  </conversation>
</conversations>

<messages>
  <status>1</status>
  <message>
    <msgID>165</msgID>
    <userID>16></userID>
    <msg>How do I parse this?</msg>
  </message>
</messages>

首先,我需要循环并为每个对话显示一个按钮。然后我需要循环并显示所选对话的所有新消息。我可以自己弄清楚逻辑。我只是不知道如何解析(爬行)XML。感谢您的帮助!

编辑:如果我说 $("status",xml).text() 我如何知道正在引用哪个 标记?我需要区分

最佳答案

  • .filter()通过顶层节点进行过滤,
  • .children()使用可选选择器来获取顶层的一组直接子级
  • .find()使用选择器获取当前顶层节点之下任何级别的一组节点
  • .each()迭代当前顶层的那些

示例: http://jsfiddle.net/MTPdw/1/

var $xml = $(xml);

var conversations = $xml.filter('conversations');

conversations.children('conversation').each(function() {
    alert($(this).find('status').text());
});

当你在做的时候:

$("status",xml).text()

...它被转换成这样:

$(xml).find("status").text();

因为最顶层的节点是<conversations><messages> ,它正在搜索所有 <status>作为其中任何一个的后代的元素。 .text()然后返回它们的累积文本内容。

关于jquery - 我如何使用 jQuery 来解析 XML,就像我在这里一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664684/

相关文章:

Python XPath : Is it possible to have optional XPath query?

java - 出于教育目的在 Java 中实现 XML 解析器

xml - 用于缩进 XML 文件的正则表达式

javascript - 如何将输入文本设置为框

javascript - 如何使用javascript移动href

javascript - jQuery 数据表 : How to get row index (or nNode) by row id of tr?

javascript - 带有选项卡导航的 jquery 选项卡

html - XML/XSLT 转换逻辑/If 语句/隐藏某些行

java - XMLInputFactory 是线程安全的吗?

jquery - 'node_modules' 文件夹的用途是什么?