プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<header:Header xmlns:header="http://aa.com">
</header:Header>
<Body>
<itemCodeSearch:ItemCodeSearch xmlns:itemCodeSearch="http://bb.com">
<Item>
<itemName>@@@@</itemName>
</Item>
</itemCodeSearch:ItemCodeSearch>
</Body>
</Response>

から、@@@@の部分を抜き出し取得したいのですが、ご存知の方いらっしゃいませんでしょうか?

simplexml_load_string()で抜き出すときには、: があるとうまくいかないということですが・・

全体が$xmlにはいっているとして、 $xml->Body->itemCodeSearch->Item->itemName; とし、うまくいっていたのですが、名前空間がどうのというエラーが発生したりします。

ご存知の方ご教授ください。

宜しくお願いします。

A 回答 (1件)

========xxx.xml(名前空間URIを支障ないものに変更==========


<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<header:Header xmlns:header="http://www.example.com">
</header:Header>
<Body>
<itemCodeSearch:ItemCodeSearch xmlns:itemCodeSearch="http://www2.example.com">
<Item>
<itemName>@@@@</itemName>
</Item>

</itemCodeSearch:ItemCodeSearch>
</Body>
</Response>
=============xxx.php050302(俺の環境では5.3.2で実行しているのを示すように設定してある)============
<?php
$str = file_get_contents("xxx.xml");
$xml = simplexml_load_string($str);
print_r((string)($xml->Body->children("http://www2.example.com",false)->ItemCodeSearch- …
?>
================
マニュアルの内容が変だったのでバグ報告した。

http://bugs.php.net/bug.php?id=51585
「名前空間のあるXMLからの取り出し」の回答画像1
    • good
    • 0
この回答へのお礼

お忙しい中ご回答頂きまして誠にありがとうございます。

$adr = 'URL';

$tmp = file_get_contents($adr);

$xml = simplexml_load_string($tmp);

print_r((string)($xml->Body->children("http://api.rakuten.co.jp/rws/rest/
ItemCodeSearch/2007-04-11",false)->
itemcodesearch->children("",true)->item->itemname));

としてみましたが、やはりうまく取得できませんでした。

コロンがはいっているとうまく取得できないみたいです。http://www.csfactory.jp/blog/2008/03/06/%E6%A5%B …

その後のitemName等の要素のアクセスがよくわかりません。

こちらのpearライブラリを利用するとできたのですが、XMLから取得するやり方が気になっています。

お礼日時:2010/04/18 20:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!