javascript - jquery从单个和多个标签解析xml

标签 javascript jquery xml

从 xml 节点返回文本时出现问题。这一切都需要是动态的。这是 xml:

<instructions>Some ins text.</instructions>
<options>
    <option>1.png</option>
    <option>2.png</option>
    <option>3.png</option>
    <option>4.png</option>
</options>
<noOfOptions>4</noOfOptions>

这是jquery解析代码:

currentPageData.push({
    title:$(xml).find("page").attr("name"),
    noOfOptions:$(xml).find("noOfOptions").text(), 
    text:$(xml).find("text").text(), 
    instructions:$(xml).find("instructions").text(), 
    option:$(xml).find("option").each(function() {
        $(this).text();
    }),

问题出在选项部分。这仅返回一个对象。我认为这是因为 .each 函数。但我需要所有这些都存在,并且我需要它在 for 循环中返回文本,如下所示:

for(i=0;i<noOfOptions;i++) {
    currentPageData[0].option[0];
}

上面的方法不起作用。我该如何修复它?

谢谢!

最佳答案

要获取选项节点的文本内容,请尝试以下操作...

首先,您的 xml 无效。我添加了一个根节点

var xml = "<root>
               <instructions>Some ins text.</instructions>
               <options>
                   <option>1.png</option>
                   <option>2.png</option>
                   <option>3.png</option>
                   <option>4.png</option>
               </options>
               <noOfOptions>4</noOfOptions>
           </root>",
    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc ),
    $options = $xml.find("option"); // get all option nodes

然后使用 jquery .each 获取每个选项值

$.each($options, function() {
    console.log($(this).text());
});  

希望有帮助

fiddle : http://jsfiddle.net/JohnMcNulty/vRf9Z/

关于javascript - jquery从单个和多个标签解析xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20350254/

相关文章:

javascript - 如何追踪元素移动并在特定点触发功能?

javascript - Mouseenter 和 mouseleave 同时触发

php echo 返回失败给 jQuery

Javascript 添加 2 个视频源

javascript - contains() 始终返回 true

javascript - 预览图像替换位于其他列表中的图像

java - Hibernate DTD 未从类路径加载,jar 在那里,仍然出现 FileNotFoundException

javascript - jQuery Draggable 拖出屏幕

xml - magento soap api v2 catalogProductInfo "product not exists"错误

java - 如何使用 Jackson 将 POJO 转换为 XML