[PHP-users 34622] Re: 名前空間付XMLの展開について
菊澤 正明
kikuzawa @ cyber-coo.com
2009年 6月 20日 (土) 09:23:23 JST
菊澤 と申します。
<Topic r:id="Top">
<Topic r:id="Top2">
r:idの値を取得したいということでいいですか?
Topicの属性値だから
$attr = $Topic->attributes('http://www.w3.org/TR/RDF/');
// $attr['id']に値が入る。
としたら、うまくいくのではないでしょうか。
On Sat, 20 Jun 2009 04:37:52 +0900 (JST)
hetzer @ 1mile.jp wrote:
> はじめまして上坂と申します。
> 表題の件についてご存知の方がおられましたらお力添え頂けますでしょうか。
>
> DMOZのstructure.rdf.u8をSimpleXML関数(PHP5)で展開する事を試みています。
> 本物のデータは長いのでテスト用に切り詰めたデータを使用した所、名前空間で指定
> した部分が取得できません。
>
> XML部分
> <?xml version='1.0' encoding='UTF-8' ?>
> <RDF xmlns:r="http://www.w3.org/TR/RDF/"
> xmlns:d="http://purl.org/dc/elements/1.0/"
> xmlns="http://dmoz.org/rdf">
>
> <!-- Generated at 2009-06-01 14:19:20 GMT on core-n01 -->
>
> <Topic r:id="Top">
> <catid>1</catid>
> <d:Title>Title1</d:Title>
> <d:Description>Description1</d:Description>
> <lastUpdate>2009-05-25 08:40:11</lastUpdate>
> </Topic>
>
> <Topic r:id="Top2">
> <catid>2</catid>
> <d:Title>Title2</d:Title>
> <d:Description>Description2</d:Description>
> <lastUpdate>2009-15-25 08:40:11</lastUpdate>
> </Topic>
> </RDF>
>
> PHPスクリプト
>
> <?php
>
> $XML = simplexml_load_file("test.rdf");
>
> foreach ($XML->Topic as $Topic) {
> echo "$Topic->catid"."\n";
> $node = $Topic->children('http://purl.org/dc/elements/1.0/');
> echo "$node->Title"."\n";
> echo "$node->Description"."\n";
> $nodeR = $Topic->children('http://www.w3.org/TR/RDF/');
> echo "$nodeR[id]"."\n";
> }
> ?>
>
> 意図としては
> $nodeR = $Topic->children('http://www.w3.org/TR/RDF/');
> echo "$nodeR[id]"."\n";
> の部分でid="XXX"のXXX部分を取得したいのですが期待通りの動作になりません。
>
> PHPよりもXMLの理解の問題なのかもしれませんが、よろしくお願いします。
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
--------------------------------------------
菊澤 正明 mailto:kikuzawa @ cyber-coo.com
PHP-users メーリングリストの案内