jQuery - 如何访问多个具有相同名称的XMLE子级

时间:2016-11-23 20:01:29

标签: jquery xml nodes

我有一个具有给定结构的XMLE文档(我无法更改它),它是这样的:

<index>
<letter>
<title>A</title>
<mainTerm>
  <title>Some description</title>
  <code>Q87.1</code>
</mainTerm>
<mainTerm>
  <title>Another Description</title>
  <see>Some reference to other entries</see>
</mainTerm>
<mainTerm>
  <title>Another term<nemod>(-some) (detail)</nemod></title>
  <code>F44.4</code>
</mainTerm>
<mainTerm>
  <title>A more detailed term</title>
  <seeAlso>similar terms</seeAlso>
  <term level="1">
    <title>acute</title>
    <code>R10.0</code>
  </term>
  <term level="1">
    <title>angina</title>
    <code>K55.1</code>
  </term>
 </mainTerm>
</letter>
</index>

我要做的是使用jQuery访问此文件的内容,并使用它构建一个表。

问题是我无法正常访问某些节点。

以下是访问xml文件的jQuery:

$.ajax({
url: 'index.xml', // name of file you want to parse
dataType: "xml",
success: parse,
error: function(){alert("Error: Something went wrong");}
});

这是我试图用来构建表的脚本:

function parse(document){
$(document).find("letter").each(function(){

$code = ($(this).find('code').text());
$desc = ($(this)).find('mainTerm->title').text();

//Build table
$("#content").append(
  '<table><tr><th>Code</th><th>Description</th></tr><tr><td> '+$code+' </td>    <td> '+$desc+' </td></tr></table>'
);                 
});
}

$ code变量有效,但$ desc没有。如何访问节点index-&gt; letter-&gt; mainTerm-&gt; title的文本?请注意,有另一个名为“title”的节点更高,我不需要。

感谢任何建议!

1 个答案:

答案 0 :(得分:1)

使用此:

$desc = $(this).find('mainTerm title').text();

选择所选项目的title元素中的mainTerm

详细了解element selection