PHP:当这个XML实体的名称包含保留字时,如何访问它?
我正在尝试分析此提要: 我想抓取“关系列表”标签内的URL 我曾尝试使用PHP使用PHP:当这个XML实体的名称包含保留字时,如何访问它?,php,xml,simplexml,Php,Xml,Simplexml,我正在尝试分析此提要: 我想抓取“关系列表”标签内的URL 我曾尝试使用PHP使用simplexml\u load\u file()获取URL,但我无法使用$feed->artist->relationship list访问它,因为PHP将“list”解释为list()函数 我有一种感觉,我犯了这个错误(没有太多XML经验),即使我能够获得我想要的元素,我也不知道如何提取它们的属性(我只想要类型和目标字段) 有人能轻轻地把我推向正确的方向吗 谢谢。 Matt看看php.net页面上的,它们实际上
simplexml\u load\u file()
获取URL,但我无法使用$feed->artist->relationship list访问它,因为PHP将“list”解释为list()
函数
我有一种感觉,我犯了这个错误(没有太多XML经验),即使我能够获得我想要的元素,我也不知道如何提取它们的属性(我只想要类型
和目标
字段)
有人能轻轻地把我推向正确的方向吗
谢谢。
Matt看看php.net页面上的,它们实际上告诉您如何解决这个问题:
// $feed->artist->relation-list
$feed->artist->{'relation-list'}
要获取节点的属性,只需使用属性名称作为节点上的数组索引:
foreach( $feed->artist->{'relation-list'}->relation as $relation ) {
$target = (string)$relation['target'];
$type = (string)$relation['type'];
// Do something with it
}
(未经测试)看看php.net页面上的,它们实际上告诉您如何解决此问题:
// $feed->artist->relation-list
$feed->artist->{'relation-list'}
要获取节点的属性,只需使用属性名称作为节点上的数组索引:
foreach( $feed->artist->{'relation-list'}->relation as $relation ) {
$target = (string)$relation['target'];
$type = (string)$relation['type'];
// Do something with it
}
(未经测试)谢谢,我似乎错过了这个语法。你是个英雄!有时候SimpleXML语法“感觉”很奇怪,这让我很困惑。永远不要忘记进行类型转换,否则您的脚本将因奇怪的错误而崩溃。(:谢谢,我似乎错过了语法。你是个英雄!有时候SimpleXML语法“感觉”很奇怪,它让我很困惑。千万别忘了做类型转换,否则你的脚本会出现奇怪的错误。(: