gpt4 book ai didi

jquery xml查找具有值的节点

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

嗨 friend 们,我在 XML 文件中有以下代码。我需要找到 <x> <metadata> <field><name>work</name><value> 的值基于y标签值。

XML 文件

<x>
<y>12</y>
<metadata>
<field>
<name>1234</name>
<value>qqqqqq</value>
</field>
<field>
<name>work</name>
<value>true</value>
</field>
</metadata>
</X>
<x>
<y>14</y>
<metadata>
<field>
<name>5678</name>
<value>wwwww</value>
</field>
<field>
<name>work</name>
<value>false</value>
</field>
</metadata>
</X>

我的代码

y=14;
$.ajax({
type: "GET" ,
url: "../JRF/JRF.xml" ,
dataType: "xml" ,
success: function(xml) {

$(xml).find('x').each(function(){
if(y == $(this).find('y').text())
{
?????????
}

});
}
});

你能帮我获取 <value> 的值吗? truefalse我必须将值存储在隐藏的输入文本框中。

最佳答案

您可以使用以下内容:

$(xml).find('x').each(function() {
if (y == $(this).find('y').text()) {
var trueOrFalse = $(this).find('metadata field:has(name:contains("work")) value').text();
console.log('work for ' + y + ' is ' + trueOrFalse);
}
});

基本上,它:

  • $(xml).find('x').each(function() {
    • 获取每个 x XML 中的元素
  • if (y == $(this).find('y').text()) {
    • 如果是x有一个 y文本内容等于 y 的子元素
  • $(this).find('metadata field:has(name:contains("work")) value').text();
    • 详细信息:
      • $(this).find('metadata field')
        • 它找到 field metadata 的子元素元素
      • $(this).find('metadata field:has(name:contains("work"))')
        • 它仅限于那些 field name child "work"在其内容中
      • $(this).find('metadata field:has(name:contains("work")) value').text();
        • 这会选择 value field:has(name:contains("work")) 的元素,并获取其文本。

下面是演示。

var xml = `<root>
<x>
<y>12</y>
<metadata>
<field>
<name>1234</name>
<value>qqqqqq</value>
</field>
<field>
<name>work</name>
<value>true</value>
</field>
</metadata>
</x>
<x>
<y>14</y>
<metadata>
<field>
<name>5678</name>
<value>wwwww</value>
</field>
<field>
<name>work</name>
<value>false</value>
</field>
</metadata>
</x>
</root>
`;

var y = 14;
$(xml).find('x').each(function() {
if (y == $(this).find('y').text()) {
var trueOrFalse = $(this).find('metadata field:has(name:contains("work")) value').text();
console.log('work for ' + y + ' is ' + trueOrFalse);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

而且,如果您喜欢俏皮话:

$(xml).find('x:has(y:contains("'+ y +'")) metadata field:has(name:contains("work")) value').text();

演示:

var xml = `<root>
<x>
<y>12</y>
<metadata>
<field>
<name>1234</name>
<value>qqqqqq</value>
</field>
<field>
<name>work</name>
<value>true</value>
</field>
</metadata>
</x>
<x>
<y>14</y>
<metadata>
<field>
<name>5678</name>
<value>wwwww</value>
</field>
<field>
<name>work</name>
<value>false</value>
</field>
</metadata>
</x>
</root>
`;

var y = 14;
var trueOrFalse = $(xml).find('x:has(y:contains("'+ y +'")) metadata field:has(name:contains("work")) value').text();
console.log('work for ' + y + ' is ' + trueOrFalse);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于jquery xml查找具有值的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49582662/

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