我正在尝试打印下面的xml的一些值。前三行打印出我想要的正确文本。但最后一行不打印任何东西。我错过了解析xml的一些内容吗?
foreach ($response->values as $value) {
print $value->updateType.' ';
print $value->updateContent->person->id.' ';
print $value->updateContent->person->firstName.' '.$value->updateContent->person->lastName;
print ':::'.$value->updateContent->person->connections->firstName.':::'; //FAIL
}
<update>
<timestamp>1262628716000</timestamp>
<update-type>CONN</update-type>
<update-content>
<person>
<id>Sa_cgv2lRl</id>
<first-name>John</first-name>
<last-name>Irving</last-name>
<headline>Author</headline>
<connections total="1">
<person>
<id>B0Vweu0eVU</id>
<first-name>Paul</first-name>
<last-name>Auster</last-name>
<headline>EWriter</headline>
</person>
</connections>
</person>
</update-content>
</update>
答案 0 :(得分:0)
显然,它应该是:
print $value->{'update-content'}->person->connections->person->{'first-name'};
在<person>
之后查看<connections>
节点!
此外,您的XML与代码之间存在不匹配,例如: updateContent
与update-content
,firstName
与first-name
的对比。如果是后者,请参阅使用短划线访问节点所需的特殊语法。