gpt4 book ai didi

jQuery 获取 XML 中的匹配节点

转载 作者:行者123 更新时间:2023-12-01 04:25:58 25 4
gpt4 key购买 nike

一点背景知识:我使用 XSLT 在页面上渲染一些 XML,但我们决定使其更具交互性,所以现在我正在执行 jQuery.ajax 调用来返回 XML,并且我正在解析它JavaScript。

我已经能够使用类似的代码从中提取特定节点

var qpPlanNode = $(xml).find('MyNode'); 
var qpPlanNum = $(qpPlanNode).children('PLANNUM').text();

这会将计划编号放入 qpPlanNum 中。但在那个 XML 中我有类似的东西

<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 的等效项是什么?

最佳答案

我可能会使用 .parseXML()

var xml = "<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>"

xmlDoc = $.parseXML(xml)
$xml = $(xmlDoc)
$source = $xml.find('TYPE:contains("AfterTax")').parent();
console.log($source);

http://jsfiddle.net/JdZzH/

或者
但是,我无法让它在实际示例中正常工作

  console.log($('TYPE:contains("AfterTax")').parent('source'));

应该这样做,但是,我在让 jsfiddle 工作时遇到困难。然而,它始终将 <MyNode> 视为父级,

$('TYPE:contains("AfterTax")').css('text-decoration', 'underline');

按预期工作,我会在 jsfiddle 以外的其他地方尝试这个。

最终

我认为 .parseXML():contains() 就是您正在寻找的。

关于jQuery 获取 XML 中的匹配节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500355/

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