PHP的SimpleXML +获取属性PHP的SimpleXML +获取属性(PHP SimpleX

2019-05-12 02:01发布

我读的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

Answer 1:

这应该工作。

$id = $xml["id"];

你的XML根成为了SimpleXML对象的根; 你的代码是由“秀”,不存在对骂一个CHID根。

您也可以使用这个链接一些教程: http://php.net/manual/en/simplexml.examples-basic.php



Answer 2:

你需要使用属性

我相信这应该工作

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


Answer 3:

这应该工作。 您需要使用具有类型的属性(如刺值使用(字符串))

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

或这个:

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


Answer 4:

您需要使用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'];


Answer 5:

试试这个

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


Answer 6:

您需要格式化你的XML正确,让它有examply使用<root></root><document></document>什么..看到XML规范和实例在http://php.net/manual/en/function .simplexml的负载string.php

$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);


Answer 7:

After you have correctly load the xml file using the SimpleXML objecto you can do a print_r($xml_variable) and you can easily find which attributes you can access. As other users said $xml['id'] also worked for me.



文章来源: PHP SimpleXML + Get Attribute