19

私が読んでいる 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;

これはうまくいきます。しかし、から ID を取得するにはどうすればよいでしょう<show id="8511">か。

私は次のようなことを試しました:

$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
4

7 に答える 7

33

これはうまくいくはずです。

$id = $xml["id"];

XML ルートが SimpleXML オブジェクトのルートになります。あなたのコードは、存在しない「show」という名前で chid root を呼び出しています。

一部のチュートリアルについては、このリンクを使用することもできます: http://php.net/manual/en/simplexml.examples-basic.php

于 2012-05-10T15:54:50.257 に答える
12

属性を使用する必要があります

私はこれがうまくいくと信じています

$id = $xml->show->attributes()->id;
于 2012-05-10T15:50:12.160 に答える
9

これはうまくいくはずです。タイプで属性を使用する必要があります(文字列値が(文字列)を使用する場合)

$id = (string) $xml->show->attributes()->id;
var_dump($id);

またはこれ:

$id = strip_tags($xml->show->attributes()->id);
var_dump($id);
于 2013-10-10T07:43:37.627 に答える
7

attributes()属性を取得するにはを使用する必要があります。

$id = $xml->show->attributes()->id;

これを行うこともできます:

$attr = $xml->show->attributes();
$id = $attr['id'];

または、これを試すことができます:

$id = $xml->show['id'];

<show>あなたの質問(あなたのルート要素です)の編集を見て、これを試してください:

$id = $xml->attributes()->id;

また

$attr = $xml->attributes();
$id = $attr['id'];

また

$id = $xml['id'];
于 2012-05-10T15:51:26.047 に答える
0

適切にフォーマットし、XMLexamplely using<root></root>または何かを持たせる必要があります.. http://php.net/manual/en/function.simplexml-load-string.php<document></document>で 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);
于 2012-05-10T15:54:54.077 に答える
0

SimpleXML オブジェクトを使用して xml ファイルを正しくロードした後、print_r($xml_variable)アクセスできる属性を簡単に見つけることができます。他のユーザーが言っ$xml['id']たように、私もうまくいきました。

于 2012-05-10T16:10:17.037 に答える