PHP-属性的循环xml
如何循环使用此xml并获取第二个PHP-属性的循环xml,php,xml,foreach,simplexml,Php,Xml,Foreach,Simplexml,如何循环使用此xml并获取第二个标记的属性href?属性为rel=“enclosure” 这是XML <entry> <link rel="alternate" type="text/html" href="http://www.flickr.com/photos/dax/5495234222/in/set-756787626064123145/"/> <link rel="enclosure" type="image/jpeg" href="h
标记的属性href
?属性为rel=“enclosure”
这是XML
<entry>
<link rel="alternate" type="text/html" href="http://www.flickr.com/photos/dax/5495234222/in/set-756787626064123145/"/>
<link rel="enclosure" type="image/jpeg" href="http://farm6.staticflickr.com/5012/5485746322_9821c561bf_b.jpg" />
</entry>
这是目前为止的php脚本:
<?php
foreach ($feed->entry as $item) {
$photo = $item->link['href'];
?>
<div class="">
<a href="<?php print $photo; ?>" class="colorbox-load"><img class="img-responsive" src="<?php print $photo; ?>"></a>
</div>
<?php
}
?>
这与它打印第一个
的href
这一事实不同,这不是我需要的。用于解析XML:
用于解析XML:
使用simplexml
和xpath
根据另一个属性选择属性。
xpath
类似于XML的SQL查询:
$xml = simplexml_load_string($x); // assume XML in $x
$link = (string)$xml->xpath("/entry/link[@rel = 'enclosure']/@href")[0];
第2行末尾的[0]
要求PHP>=5.4。如果您使用的是较低版本,请更新或执行以下操作:
$link = $xml->xpath("/entry/link[@rel = 'enclosure']/@href");
$link = (string)$link[0];
xpath
-表达式选择所有节点的href
-属性,这些节点具有属性rel='enclosure'
,并且在simplexml元素的数组中作为其父节点
上面的代码将仅选择数组的第一个元素
,并将其转换为字符串
看到它工作了吗
如果您希望使用foreach
-循环,则需要检查rel属性,如下所示:
foreach ($xml->entry as $entry) {
if ($entry->link['rel'] == 'enclosure') {
echo "This is the link: " . $entry->link['href'];
}
}
使用simplexml
和xpath
根据另一个属性选择属性。
xpath
类似于XML的SQL查询:
$xml = simplexml_load_string($x); // assume XML in $x
$link = (string)$xml->xpath("/entry/link[@rel = 'enclosure']/@href")[0];
第2行末尾的[0]
要求PHP>=5.4。如果您使用的是较低版本,请更新或执行以下操作:
$link = $xml->xpath("/entry/link[@rel = 'enclosure']/@href");
$link = (string)$link[0];
xpath
-表达式选择所有节点的href
-属性,这些节点具有属性rel='enclosure'
,并且在simplexml元素的数组中作为其父节点
上面的代码将仅选择数组的第一个元素
,并将其转换为字符串
看到它工作了吗
如果您希望使用foreach
-循环,则需要检查rel属性,如下所示:
foreach ($xml->entry as $entry) {
if ($entry->link['rel'] == 'enclosure') {
echo "This is the link: " . $entry->link['href'];
}
}
您可以通过选择带有附件关系的链接的href来执行此操作:$photo=$item->xpath('link[@rel=“enclosure”]/@href')[0]代码>-当您需要机柜时,位置(第一、第二)是一个太弱的标准。另请参见。也可能重复:您可以通过选择带有附件关系的链接的href来执行此操作:$photo=$item->xpath('link[@rel=“enclosure”]/@href')[0]代码>-当您需要机柜时,位置(第一、第二)是一个太弱的标准。另请参见。也可以是以下内容的副本: