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

使用jQuery无法获取XML中url元素的title属性值,求助

问题解决:提取XML中url元素的title属性生成链接

错误原因

你遇到的「unrecognized expression」错误,核心是$(xml).find(url[1])逻辑错误:url[1]是url元素的文本内容(也就是具体的链接地址),而find()方法需要传入CSS选择器字符串(比如'url'),把链接地址当成选择器解析,自然触发语法错误。

正确实现方案

方案1:直接遍历每个url元素(最直观)

在遍历marker的同时,逐个处理每个url元素,一次性获取它的文本(href值)和title属性:

function parseXml(xml) {
  $(xml).find("marker").each(function() {
    let html = '';
    // 遍历当前marker下的所有url元素
    $(this).find('url').each(function() {
      const linkHref = $(this).text();
      const linkTitle = $(this).attr('title');
      // 拼接成目标HTML链接
      html += `<a href="${linkHref}">Link: ${linkTitle}</a><br>`;
    });
    // 将生成的html插入到页面目标位置,比如:
    // $('#link-container').append(html);
  });
}

方案2:用map存储完整的链接信息(适合后续复用数据)

如果需要先存储所有链接数据再处理,可用map()生成包含href和title的对象数组:

function parseXml(xml) {
  $(xml).find("marker").each(function() {
    // 生成包含每个url的href和title的数组
    const urlData = $(this).find('url').map(function() {
      return {
        href: $(this).text(),
        title: $(this).attr('title')
      };
    }).get();

    let html = '';
    // 遍历数组生成链接
    for (let i = 0; i < urlData.length; i++) {
      html += `<a href="${urlData[i].href}">Link: ${urlData[i].title}</a><br>`;
    }
    // 后续处理或插入html
  });
}

补充说明

  • 无需单独提取url文本再回头查找元素,直接在遍历url元素的过程中完成属性和内容的获取,逻辑更清晰且避免错误。
  • 若不需要换行,可去掉<br>标签,根据实际需求调整HTML结构。

内容的提问来源于stack exchange,提问作者Ed S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:44:55