LoginSignup
17

More than 5 years have passed since last update.

jQueryでdc:titleのような : (コロン) があるXMLタグの中身を読む

Posted at

単純なのですが、ハマったので記事にしてみます。

jQueryでコロン付きのXMLエレメントが読めない

RSSなど、AJAX経由でXMLで読み出すことがあるかと思います。
その場合、たとえばこんなコード。

XML

<dc:title>タイトル</dc:title>

jQuery

$( xml ).find( 'dc:title' ).text();

これでは読み出せません。

解決策

こうすれば読めます。

jQuery

$( xml ).find( 'title, dc\\:title' ).text();

かんたんな説明

コロン付きのタグについて

XML名前空間に基づいたものです。
詳しくはこちらをお読みください。

jQueryではなぜ読めない?

コロンはjQueryではフィルタの役割を担っているため、そのままでは使えません。

FirefoxとIEの場合

バックスラッシュ2つでコロンをエスケープします。

jQuery

$( xml ).find( 'dc\\:title' ).text();

ChromeとSafariの場合

XML名前空間を使ったエレメントの場合、大域属性のほうを無視して読めるようです。

jQuery

$( xml ).find( 'title' ).text();

すべてのブラウザで読む場合

"," で区切ることで、OR検索します。解決策と同じです。

jQuery

$( xml ).find( 'title, dc\\:title' ).text();

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17