[PHP-users 28905] Re: 名前空間の取得について

KOYAMA Tetsuji koyama @ hoge.org
2006年 3月 29日 (水) 18:58:08 JST


小山です。

On 3/29/06, KAWASAKI, Shingo <s.kawasaki @ media-trust.com> wrote:
> xml内の【xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd"】の部分を動的に取得する方法、
> またはその代替え案等あればご教示いただけないでしょうか?

PHP-5.1.0 から SimpleXML に、

   SimpleXMLElement::getNamespaces
    SimpleXMLElement::getDocNamespaces

というメソッドが追加されました。

> ===ソース=================================
>  const ITUNES = 'http://www.itunes.com/DTDs/podcast-1.0.dtd';
>  $this->rss = simplexml_load_file( 'http://aaa.bbbb.jp/rss2.0.xml' );
>  $image_array1 = $this->rss->channel->children(self::ITUNES)->image->attributes();
>  $url = $this->check_image( @$image_array1['href'] );
> =========================================

この場合は

$ns = $this->rss->getDocNamespaces();
$itunes_ns = $this->rss->channel->children($ns['itunes']);

などのように書くことができます。

ちと宣伝を。
5月に発売予定の「超・極める!PHP」というムックに、PHP5 で使える
XML API (SimpleXML, XMLReader, xmlwriter) についての記事を書き
ました。SimpleXML の名前空間サポートについても少し書いています。

--
    小山哲志@ビート・クラフト
    koyama @ beatcraft.com
    koyama @ hoge.org


PHP-users メーリングリストの案内