gpt4 book ai didi

javascript - 如何选择在另一个属性中具有特定值的标记的 XML 属性值?

转载 作者:行者123 更新时间:2023-11-28 03:30:57 24 4
gpt4 key购买 nike

我想要获取以 2017-Q4 为 TIME_PERIOD 值的 Obs 标记的 OBS_VALUE 值。

这是我的 xml 文件示例:

XML

<Obs TIME_PERIOD="2018-Q1" OBS_VALUE="547289" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A"/>
<Obs TIME_PERIOD="2017-Q4" OBS_VALUE="545905" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A"/>
<Obs TIME_PERIOD="2017-Q3" OBS_VALUE="542169" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A"/>

这是我已经实现的目标(正在发挥作用)

JS

var x = Dataval.getElementsByTagName('Obs')[1].getAttributeNode("OBS_VALUE");

但我想以另一种方式选择标签:通过它的 TIME_PERIOD 值。

最佳答案

使用 jquery,您可以通过这种方式从一组元素中选择具有特定属性的元素:

var tp="2017-Q4"
var x=$('Obs[TIME_PERIOD="'+tp+'"]').attr('OBS_VALUE')
console.log(x)

在控制台中输出:545905

使用普通的 javascript,你可以实现相同的效果:

var tp="2017-Q4"
var obs = document.getElementsByTagName('Obs');

for (ob of obs) {
t_p = ob.getAttribute('TIME_PERIOD');
if (t_p === tp) {
// output data
console.log(ob.getAttribute('OBS_VALUE'))
}
}

var tp = "2017-Q4"
var x = $('Obs[TIME_PERIOD="' + tp + '"]').attr('OBS_VALUE')


console.log('jquery: '+x)


var obs = document.getElementsByTagName('Obs');

for (ob of obs) {
t_p = ob.getAttribute('TIME_PERIOD');
if (t_p === tp) {
// Grab the data
console.log('javascript: '+ob.getAttribute('OBS_VALUE'))
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<Obs TIME_PERIOD="2018-Q1" OBS_VALUE="547289" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A" />
<Obs TIME_PERIOD="2017-Q4" OBS_VALUE="545905" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A" />
<Obs TIME_PERIOD="2017-Q3" OBS_VALUE="542169" OBS_STATUS="A" OBS_QUAL="DEF" OBS_TYPE="A" />

关于javascript - 如何选择在另一个属性中具有特定值的标记的 XML 属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58189779/

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