这个(或其某些变体)是由我的 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/