【问题标题】:XML jQuery get multiple nodes with same nameXML jQuery获取具有相同名称的多个节点
【发布时间】:2014-09-30 10:37:17
【问题描述】:

我有一个 XML 文件的一部分,如下所示:

<paymentTypes>
<paymentType>type1</paymentType>
<paymentType>type2</paymentType>
<paymentType>type3</paymentType>
<paymentType>type4</paymentType>
</paymentTypes>

问题是我想通过 ajax jQuery 获取它,但如果我尝试这个:

var paymentTypes = $(xml).find("paymentTypes").text() 

输出将是 type1type2type3type4。

我应该使用什么函数(内置还是应该编写)以便在不同的行上获得结果?

谢谢!

更新: 在我的 XML 文件中有多个项目,每个项目都有自己的条目。

【问题讨论】:

  • 期望的输出是什么?你需要一个文本值数组
  • 如果是这样var paymentTypes = $(xml).find("paymentType").map(function(){return $(this).text()}).get()
  • @ArunPJohny 应该是 paymentType,而不是 paymentTypes
  • @Regent 是的...谢谢...
  • 想要的输出是 type1\n type2\n type3\n type4

标签: javascript jquery ajax xml


【解决方案1】:

你可以遍历结果追加到新的字符串

var xml ='<paymentTypes><paymentType>type1</paymentType><paymentType>type2</paymentType><paymentType>type3</paymentType><paymentType>type4</paymentType></paymentTypes>';

var result = "";
$(xml).find('paymentType').each(function(i,v){
    result += $(v).text()+'\n';
});
console.log(result);

【讨论】: