gpt4 book ai didi

jquery - 使用 find() 将 XML 节点文本作为数组返回

转载 作者:数据小太阳 更新时间:2023-10-29 02:44:17 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何将 .find() 结果的子集作为数组返回。我有一个这样的 XML 文档(这是 here 的摘录):

<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$.ajax()为上述URL返回的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 是不是函数。知道我在这里做错了什么吗?

谢谢!

最佳答案

要根据所选元素的属性创建一个数组,您可以使用 map():

var descriptors = $xml.find("DescriptorName").map(function() {
return $(this).text();
}).get();
console.log(descriptors); // = [ "Amino Acid Motifs", "Catalytic Domain", ... ]

Meanwhile, iterating through descriptors and trying console.log(descriptors[i].text()); indicates that descriptors[i].text is not a function. Any ideas what I'm doing wrong here?

这是因为当您使用括号表示法访问 jQuery 对象(在您的 descriptors 变量中)时,您正在检索底层的 DOMElement。这没有 text() 方法,因此出现错误。相反,您可以使用 jQuery 的 eq() 方法:

descriptors.eq(i).text();

关于jquery - 使用 find() 将 XML 节点文本作为数组返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36735686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com