[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 メーリングリストの案内