错误是显示SimpleXML对象

时间:2016-12-04 10:48:49

标签: php xml xml-parsing wamp

name[0] + '.'

我有上面的XML数据文件。我试图在channel-name =“HR”部分回显标题。所以,回声应该是'欢迎来到HR-TV。

这是我执行此操作的PHP代码

<?xml version="1.0" encoding="UTF-8"?>
<TVchannel>
    <month-name month="September">
        <channel-name name="IT">
            <title>Welcome to IT-TV</title>
            <image-no-1></image-no-1>
            <image-no-2></image-no-2>
            <image-no-3></image-no-3>
            <image-no-4></image-no-4>
            <image-no-5></image-no-5>
        </channel-name>
        <channel-name name="PTG">
            <title>Welcome to PTG-TV</title>
            <image-no-1></image-no-1>
            <image-no-2></image-no-2>
            <image-no-3></image-no-3>
            <image-no-4></image-no-4>
            <image-no-5></image-no-5>
        </channel-name>
        <channel-name name="HR">
            <title>Welcome to HR-TV</title>
            <image-no-1></image-no-1>
            <image-no-2></image-no-2>
            <image-no-3></image-no-3>
            <image-no-4></image-no-4>
            <image-no-5></image-no-5>
        </channel-name>
    </month-name>

    <month-name month="October">
        <channel-name name="IT">
            <title>Welcome to IT-TV</title>
            <image-no-1></image-no-1>
            <image-no-2></image-no-2>
            <image-no-3></image-no-3>
            <image-no-4></image-no-4>
            <image-no-5></image-no-5>
        </channel-name>
        <channel-name name="PTG">
            <title>Welcome to PTG-TV</title>
            <image-no-1></image-no-1>
            <image-no-2></image-no-2>
            <image-no-3></image-no-3>
            <image-no-4></image-no-4>
            <image-no-5></image-no-5>
        </channel-name>
        <channel-name name="HR">
            <title>Welcome to HR-TV</title>
            <image-no-1></image-no-1>
            <image-no-2></image-no-2>
            <image-no-3></image-no-3>
            <image-no-4></image-no-4>
            <image-no-5></image-no-5>
        </channel-name>
    </month-name>
</TVchannel>

但是,当我运行时,会出现此错误  解析错误:第3行的语法错误,意外的'[',期待标识符(T_STRING)或变量(T_VARIABLE)或'{'或'$'在C:\ wamp64 \ www \ POC - ITTV \ logic.php中

请帮助

3 个答案:

答案 0 :(得分:1)

echo $picture_container->{'month-name'}[0]->{'channel-name'}[1]->title->__toString();

顺便说一句,输出'欢迎使用HR-TV'应为{'channel-name'}[2]

答案 1 :(得分:1)

这里有很多错误:

1。 month-name或channel-name不是常量。即使它们是你不能使用的常数,你也不能将它们作为含量使用。&#34; - &#34;声明常量或变量或任何方法或任何函数时的字母。 (PHP解释器将其理解为减去操作。)

2. 如果您想使用 - 来访问生成的属性!或者像这样的键,你应该使用这样的语法:

$something->{'keyword-name'}

因此,您可以访问Simple XML Generated Properties,如:

$picture_container->{'month-name'}[0]['channel_name'][1]->title;

答案 2 :(得分:-2)

只需在使用方括号包装时尝试删除->运算符。类似如下:

<?php
    $picture_container = simplexml_load_file('data.xml');
    echo $picture_container["month-name"][0]["channel-name"][1]->title;
?>