繁体   English   中英

从元描述中获取SimpleXMLElement [重复]

[英]Get SimpleXMLElement from Meta description [duplicate]

这个问题已经在这里有了答案:

我正在尝试检索一些包含在SimpleXMLElement中的元数据。 我正在使用XPATH,但我一直在努力获得自己感兴趣的价值。

以下是网页标题的摘录(摘自: http : //www.wayfair.de/CleverFurn-Couchtisch-Abby-69318X2-MFE2223.html

您知道如何检索包含以下内容的数组中的所有xmlns数据:

1)og:type 2)og:url 3)og:image .... x)og:upc


<meta xmlns:og="http://opengraphprotocol.org/schema/" property="og:title" content="CleverFurn Couchtisch &quot;Abby&quot;" />


这是我的PHP代码

<?php
$html = file_get_contents("http://www.wayfair.de/CleverFurn-Couchtisch-Abby-69318X2-MFE2223.html");
$doc = new DOMDocument();
$doc->strictErrorChecking = false;
$doc->recover=true;
@$doc->loadHTML("<html><body>".$html."</body></html>");

$xpath = new DOMXpath($doc);
$elements = $xpath->query("//*/meta[@property='og:url']");

if (!is_null($elements)) {
foreach ($elements as $element) {
echo "<br/>[". $element->nodeName. "]";
var_dump($element);
  $nodes = $element->childNodes;
  foreach ($nodes as $node) {
     echo $node->nodeValue. "\n";
     }
   }
 }
?>

刚找到答案:

如何通过php获取网页的开放图谱协议?

<?php
$html = file_get_contents("http://www.wayfair.de/CleverFurn-Couchtisch-Abby-69318X2-MFE2223.html");
libxml_use_internal_errors(true); // Yeah if you are so worried about using @ with warnings
$doc = new DomDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$query = '//*/meta[starts-with(@property, \'og:\')]';
$metas = $xpath->query($query);
foreach ($metas as $meta) {
    $property = $meta->getAttribute('property');
    $content = $meta->getAttribute('content');
    $rmetas[$property] = $content;
}
var_dump($rmetas);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM