You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Javascript从XML API中提取指定match_id对应字段的方法咨询

功能实现代码

实现逻辑

  • 遍历所有event节点,根据传入的目标赛事ID匹配对应节点
  • 校验查询字段合法性,仅允许查询o1、o2字段
  • 覆盖异常场景兜底:未匹配到赛事、查询字段不存在、字段非法

完整代码

function findSpecific(xml, choice, place) {
    // place为传入的目标match_id,choice为要查询的字段,支持传入'o1'或'o2'
    const eventList = xml.getElementsByTagName('event');
    
    for (let i = 0; i < eventList.length; i++) {
        const currentEvent = eventList[i];
        const curMatchId = currentEvent.getElementsByTagName('match_id')[0].textContent.trim();
        
        // 匹配到目标赛事
        if (curMatchId === String(place)) {
            // 校验查询字段合法性
            if (choice !== 'o1' && choice !== 'o2') {
                return '查询字段非法,仅支持o1、o2';
            }
            const targetField = currentEvent.getElementsByTagName(choice)[0];
            if (!targetField) {
                return `当前赛事无${choice}字段`;
            }
            return targetField.textContent.trim();
        }
    }
    return `未找到ID为${place}的对应赛事`;
}

前置注意事项

如果你的API返回的是XML字符串,需要先转换为XML Document对象再传入函数,转换代码如下:

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(你的XML字符串变量, "text/xml");

调用示例

// 查询赛事ID2079876的o1字段值
console.log(findSpecific(xmlDoc, 'o1', 2079876)); // 输出2.57
// 查询赛事ID2081006的o2字段值
console.log(findSpecific(xmlDoc, 'o2', 2081006)); // 输出14.50

内容的提问来源于stack exchange,提问作者NinjitsuIXX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:39:02