2012-03-02 11 views
1

各リンクについて、XML文書の内容でリンクテキストを更新する

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

私はhref属性にURLの末尾にIDを取得したいと思います。例えば、上に見られるように、78363。このIDを使用して、XMLページを取得し、そのIDに基づいてXMLページからデータを取得したいと考えています。 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> 

どうすればいいですか?

+0

AGH!私の目!フォーマットは標準レベルにしてください。ありがとうございます。 – Ryan

+0

申し訳ありませんが、私の英語はうまくいきません。とにかく編集に感謝します。 – Edoras

+0

または他のアイデア?おそらく、XMLページとスクリプトの間にコードを含むPHPファイルを貼り付け、スクリプトの要求でデータを取得しますか? '/get_xml.php?id = 78363'? – Edoras

答えて

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機能を使用して解析することを検討してください。ここでは簡単にするために正規表現を使用しました。

+0

XMLページが公開されています:http://www.wowhead.com/item=78363&xml(データを取得したサイトは私のものではありません)。 – Edoras

+0

そして、このXMLページにはさらに多くのCDATAオプションがあります: -/ – Edoras

+0

@Edoras:OK、自分のサーバーでページをプロキシする必要があります。クロスオリジン・ポリシーでは、Ajaxを介してリクエストを直接送信することはできません。他のCDATAについては、必要なのは最初のものなので問題ありません。 – Ryan

関連する問題