jQuery获取XML中的匹配节点 [英] jQuery to get matching nodes in XML
问题描述
一些背景知识:我正在使用XSLT在页面上呈现一些XML,但是我们决定使其更具交互性,所以现在我正在执行jQuery.ajax调用以返回XML,并在其中解析它. JavaScript.
A little background: I was rendering some XML on the page using XSLT, but we decided to make it more interactive and so now I'm doing a jQuery.ajax call to return the XML, and I'm parsing it in JavaScript.
我已经能够使用类似的代码从中提取特定的节点
I've been able to extract particular nodes from it using code like
var qpPlanNode = $(xml).find('MyNode');
var qpPlanNum = $(qpPlanNode).children('PLANNUM').text();
然后将计划编号添加到qpPlanNum中.但是在那种XML中,我有类似的东西
And that gets the plan number into qpPlanNum. But in that XML I have something like
<xml>
<MyNode>
<PLANNUM>123</PLANNUM>
<SOURCE>
<TYPE>PreTax</TYPE>
<AMOUNT>1234</AMOUNT>
</SOURCE>
<SOURCE>
<TYPE>AfterTax</TYPE>
<AMOUNT>456</AMOUNT>
</SOURCE>
<SOURCE>
<TYPE>PreTax</TYPE>
<AMOUNT>234</AMOUNT>
</SOURCE>
</MyNode>
</xml>
我想提取所有具有TYPE特定值的SOURCE节点.我找不到能够做到这一点的简单jQuery选择器.在XSLT中,我正在做<xsl:variable name="afterTaxSources" select="SOURCE[TYPE = 'AfterTax']"/>
.什么是JQuery等效项?
I would like to extract all the SOURCE nodes that have a particular value for TYPE. I can't find a simple jQuery selector that that will do that. In XSLT, I was doing <xsl:variable name="afterTaxSources" select="SOURCE[TYPE = 'AfterTax']"/>
. What's the JQuery equivalent?
推荐答案
我偶然发现了一个似乎可行的东西:
I just stumbled on this one, which seems like it is working:
var pretaxSources = $(qpPlanNode).find('SOURCE:has(TYPE:contains("PreTax"))');
有人看到它不会的任何理由吗?
Does anybody see any reason why it wouldn't?
更好的是,我可以使用
var pretaxSources = $(qpPlanNode).find('SOURCE:has(TYPE:contains("PreTax"),TYPE:contains("Employee"))');
这篇关于jQuery获取XML中的匹配节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!