![](/img/trans.png)
[英]How to create an html object and append sibling to that from an array using JQuery?
[英]Create Object array from XML data using Jquery
我想從 XML 中提取所有數據,該 XML 具有存在於變量中的文本節點並創建一個對象數組。 使用 Jquery 相同。
我有以下 XML 數據。
var header = ['name', 'data1', 'data2'];
var data = '<parent1>' +
'<person>' +
'<name>Name1</name>' +
'<details>' +
'<data1>123</data1>' +
'<data2>34567</data2>' +
'</details>' + '</child>' + '<person>' +
'<name>Name1</name>' +
'<details>' +
'<data1>123</data1>' +
'<data2>34567</data2>' +
'</details>' + '<person>' + '</parent1>';
xmlDoc = $.parseXML( data ),
$xml = $( xmlDoc ),
var tabData = [];
var obj = {};
$xml.find('parent1').each(function(item, index){
header.forEach(function (item, index) {
$t = $xml.find(item).text();
obj[item] = $t;
});
tabData.push(obj);
obj = {};
該對象應包含
{name : Name1, data1 :123, data2:34567}, {name : Name2, data1 :123, data2:34567}.
循環無法訪問文本節點。 $this 也不能幫助我完成對單個孩子的搜索。
要求是函數應該是動態的並且應該可以工作任何類型的 XML 樹。
任何人都可以請幫忙。
您可以使用parseXML
xml。 您的 XML 數據中確實存在一些錯誤,因此在繼續之前請仔細檢查您是否有正確的 XML 結束標記。
循環遍歷每個 person XML 元素並創建一個 javascript obj,然后將其推送到一個數組中。
請參閱下面的示例:
var xml = '<parent1><person><child><name>Name1</name><details><data1>123</data1><data2>34567</data2></details></child></person><person><child><name>Name2</name><details><data1>123</data1><data2>34567</data2></details></child></person></parent1>'; var xmlDoc = $.parseXML(xml); var $xml = $(xmlDoc); var array = []; $xml.find('person').each(function (index) { var obj = { name: $(this).find('name').text(), data1: $(this).find('data1').text(), data2: $(this).find('data2').text() }; array.push(obj); }); console.log(array);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.