我正在尝试解析XML数据。而且成功了,它奏效了。但是,结果非常复杂,因为循环无法正常工作。
我的问题是我不知道如何在特定标签中循环。例如,
<item>
<word>aaa</word>
<sup_no>0</sup_no>
<pos>nnn</pos>
<sense>
<sense_order>1</sense_order>
<definition>xxx</definition>
<translation>
<trans_lang>xxx</trans_lang>
<trans_word>xxx</trans_word>
<trans_dfn>xxx</trans_dfn>
</translation>
</sense>
<sense>
<sense_order>2</sense_order>
<definition>yyy</definition>
<translation>
<trans_lang>yyy</trans_lang>
<trans_word>yyy</trans_word>
<trans_dfn>yyy</trans_dfn>
</translation>
</sense>
</item>
<item>
<word>aaa</word>
<sup_no>0</sup_no>
<pos>nnn</pos>
<sense>
<sense_order>1</sense_order>
<definition>xxx</definition>
<translation>
<trans_lang>xxx</trans_lang>
<trans_word>xxx</trans_word>
<trans_dfn>xxx</trans_dfn>
</translation>
</sense>
<sense>
<sense_order>2</sense_order>
<definition>yyy</definition>
<translation>
<trans_lang>yyy</trans_lang>
<trans_word>yyy</trans_word>
<trans_dfn>yyy</trans_dfn>
</translation>
</sense>
<sense>
<sense_order>3</sense_order>
<definition>zzz</definition>
<translation>
<trans_lang>zzz</trans_lang>
<trans_word>zzz</trans_word>
<trans_dfn>zzz</trans_dfn>
</translation>
</sense>
</item>
我将$().each(function(){});
用于item
。但是,我使用$().find().text()
来获取数据。就是这样。我不知道如何在一个特定的内部循环。如果需要的话,就像双循环甚至三重循环。
我的JavaScript代码是:
$(obj).each(function(){
result += ($(this).find("word").text()
+"<span class='pos'>("+$(this).find("pos").text()+")</span> "
+"<span>"+$(this).find("sense_order").text()+"</span> "
+"<span>"+$(this).find("trans_word").text()+"</span>"
+"<div>"+$(this).find("trans_dfn").text()+"</div><br>");
});
它只是以一种方式打印(从上到下)。您能解释一下它对我的作用吗?
答案 0 :(得分:1)
只需对嵌套元素使用另一个each
循环。
$(obj).each(function(){
var senseResult = "";
$(this).find("sense").each(function(){
senseResult += "<div><span>"+$(this).find("sense_order").text()+"</span> "
+"<span>"+$(this).find("trans_word").text()+"</span>"
+"<div>"+$(this).find("trans_dfn").text()+"</div></div>";
});
result += $(this).find("word").text()
+"<span class='pos'>("+$(this).find("pos").text()+")</span>"
+ senseResult
+ "<br/>";
});