如何使用simplexml解析xml - 带有空格和节点的节点非标准格式

时间:2018-03-14 02:59:55

标签: php parsing simplexml

一个简单的xml节点如下所示,我可以通过原子提取循环并抓取标题非常简单。

<title>Soft Golden Yellow Champagne Wedding Fizzy Bubbles </title>

我的问题是像这样的节点,其格式不像简单的那样:

<link rel="enclosure" type="image/jpeg" href="https://someimage.com/image.jpg"/>

你如何存储并回应它?我的代码抓住了下面的标题

$html = "";
$url = "https://www.redbubble.com/people/honorandobey/shop/recent+drawstring-bags.atom";
$xml = simplexml_load_file($url);
for($i =0; $i < 10; $i++) {
    $title =$xml->entry[$i]->title;
    $html .="<p>$title</p>";
}
echo $html;

如何获取图像/链接或任何格式化为链接rel节点的内容?

1 个答案:

答案 0 :(得分:2)

使用SimpleXMLElement,您可以将节点的属性作为数组访问,因此要获取href标记的link属性,请执行以下操作:

$xml = simplexml_load_file($url);
for($i =0; $i < 10; $i++) {
    $title =$xml->entry[$i]->title;
    $html .= "<p>$title</p>";
    $html .= "<p>Link: ".$xml->entry[$i]->link["href"]."</p>";
}
echo $html;

或者您也可以使用attributes()方法访问属性:

$html .= "<p>Link: ".$xml->entry[$i]->link->attributes()->href."</p>";