私が読んでいるXMLは次のようになります。
<show id="8511">
<name>The Big Bang Theory</name>
<link>http://www.tvrage.com/The_Big_Bang_Theory</link>
<started>2007-09-24</started>
<country>USA</country>
<latestepisode>
<number>05x23</number>
<title>The Launch Acceleration</title>
</latestepisode>
</show>
(たとえば)最新のエピソードの番号を取得するには、次のようにします。
$ep = $xml->latestepisode[0]->number;
これはうまく機能します。しかし、<show id="8511">
からIDを取得するにはどうすればよいですか?
私は次のようなものを試しました:
$id = $xml->show;
$id = $xml->show[0];
しかし、どれも機能しませんでした。
更新
私のコードスニペット:
$url = "http://services.tvrage.com/feeds/episodeinfo.php?show=".$showName;
$result = file_get_contents($url);
$xml = new SimpleXMLElement($result);
//still doesnt work
$id = $xml->show->attributes()->id;
$ep = $xml->latestepisode[0]->number;
echo ($id);
オリ。 XML:
http://services.tvrage.com/feeds/episodeinfo.php?show=The.Big.Bang.Theory
これは動作するはずです。
$id = $xml["id"];
XMLルートがSimpleXMLオブジェクトのルートになります。あなたのコードは存在しない 'show'という名前でchid rootを呼び出しています。
いくつかのチュートリアルでこのリンクを使用することもできます。 http://php.net/manual/en/simplexml.examples-basic.php
これは動作するはずです。タイプの属性を使用する必要があります(スティング値が使用する場合(文字列))
$id = (string) $xml->show->attributes()->id;
var_dump($id);
またはこれ:
$id = strip_tags($xml->show->attributes()->id);
var_dump($id);
attributes()
を使用して属性を取得する必要があります。
$id = $xml->show->attributes()->id;
これを行うこともできます:
$attr = $xml->show->attributes();
$id = $attr['id'];
または、これを試すことができます:
$id = $xml->show['id'];
質問の編集(<show>
はルート要素です)、これを試してください:
$id = $xml->attributes()->id;
OR
$attr = $xml->attributes();
$id = $attr['id'];
OR
$id = $xml['id'];
これを試して
$id = (int)$xml->show->attributes()->id;
XML
を適切にフォーマットし、<root></root>
または<document></document>
何でも.. http://php.net/manual/en/function.simplexml-load-string.php のXML仕様と例を参照してください。
$xml = '<?xml version="1.0" ?>
<root>
<show id="8511">
<name>The Big Bang Theory</name>
<link>http://www.tvrage.com/The_Big_Bang_Theory</link>
<started>2007-09-24</started>
<country>USA</country>
<latestepisode>
<number>05x23</number>
<title>The Launch Acceleration</title>
</latestepisode>
</show>
</root>';
$xml = simplexml_load_string ( $xml );
var_dump ($xml->show->attributes ()->id);
SimpleXMLオブジェクトを使用してxmlファイルを正しくロードしたら、print_r($xml_variable)
を実行でき、アクセスできる属性を簡単に見つけることができます。他のユーザーが言ったように$xml['id']
も私のために働いた。