我正在尝试找出如何将.find()的结果返回为一个数组的子集。我有一个XML文档,像这样(这是此处的摘录):
<MeshHeadingList>
<MeshHeading>
<DescriptorName MajorTopicYN="N" UI="D020816">Amino Acid Motifs</DescriptorName>
</MeshHeading>
<MeshHeading>
<DescriptorName MajorTopicYN="N" UI="D020134">Catalytic Domain</DescriptorName>
</MeshHeading>
<MeshHeading>
<DescriptorName MajorTopicYN="N" UI="D003017">Clostridium tetani</DescriptorName>
<QualifierName MajorTopicYN="N" UI="Q000201">enzymology</QualifierName>
</MeshHeading>
<MeshHeading>
<DescriptorName MajorTopicYN="N" UI="D019281">Dimerization</DescriptorName>
</MeshHeading>
<MeshHeading>
<DescriptorName MajorTopicYN="N" UI="D004926">Escherichia coli</DescriptorName>
<QualifierName MajorTopicYN="N" UI="Q000201">enzymology</QualifierName>
</MeshHeading>
</MeshHeadingList>
我想要的是一个由所有
DescriptorName
元素的内部文本组成的数组。{"Amino acid motifs", "catalytic domain", "Clostridium tetani", "Dimerization", "Escherichia coli"}
假设
data
是上述URL通过$.ajax()
返回的XML数据,下面的代码:$xml = $(data);
var descriptors = $xml.find("DescriptorName");
console.log(descriptors);
日志
Amino acid motifscatalytic domainClostridium tetaniDimerisationEscherichia coli
同时,通过迭代
descriptors
并尝试 console.log(descriptors[i].text());
显示 descriptors[i].text 不是一个函数
。您有什么想法我在这里做错了吗?谢谢!
eq()
会得到相同的结果,但显然效率较低? - Yak