使用XML文档中的内容更新链接文本

时间:2012-03-02 23:23:29

标签: javascript jquery xml ajax

对于每个链接,例如

<a href="http://www.wowhead.com/item=78363">http://www.wowhead.com/item=78363</a>

我想在href属性中检索网址末尾的ID。例如,78363,如上所示。使用此ID,我想检索XML页面并根据ID从中获取数据。 XML文档的URL与项目的链接相同,但以&xml结尾,因此:

http://www.wowhead.com/item=78363&xml

从XML页面我需要CDATA部分中的值:

<name>
<![CDATA[Vagaries of Time]]>
</name>

即“时间的摇晃”。然后我需要在标签内插入名称:

<a href="http://www.wowhead.com/item=78363">Vagaries of Time</a>

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

根据正则表达式循环链接,发送Ajax请求,使用正则表达式解析文本,然后完成。

$('a').each(function() {
    var $this = $(this);

    if(/item=\d+$/.test(this.href)) {
        $.ajax({
            url: this.href + '&xml',
            dataType: 'text',
            success: function(data) {
                $this.text(/<!\[CDATA\[([^\]]+)/.exec(data)[1]);
            }
        });
    }
});

当然,您很可能想要添加一些错误检查。此外,如果您的XML文档比您发布的示例更复杂,请考虑使用原生XML功能进行解析 - 我只是使用正则表达式来简化它。