jQuery获取XML中的匹配节点 [英] jQuery to get matching nodes in XML

查看:200
本文介绍了jQuery获取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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆