Fonctionne pour moi, quand la aleur est entre guillemets, montrons un exemple, car il ne devient pas clair dans le commentaire.
J'ai créé un fichier html.html
:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="some content">
</head>
<body>
<div>TODO write content</div>
</body>
</html>
puis un php:
<?php
$file = "html.html";
$dom = new DOMDocument();
$dom->loadHTMLFile($file);
$xpath = new DOMXPath($dom);
$name = 'description';
$query = '/html/head/meta[@name="'.$name.'"]/@content';
$contents = $xpath->query($query);
echo $contents->item(0)->value;
?>
Et la sortie est some content
Vous devez fermer les guillemets simples après les premières doubles les , donc ils seront conservés dans la chaîne entre guillemets, puis pour mettre la variable, commencer à citer et mettre à nouveau des guillemets
EDIT:
Je l'ai utilisé votre code HTML à partir du site affiché:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css" media="screen">
<!--
#qm0 {position:relative;}
#qm0 a {display:block; white-space:nowrap; }
#qm0 div a {float:none;}
#qm0 div {visibility:hidden;position:absolute;}
#qm0 a {float: left; }
-->
</style>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Product1 Name</title>
<link href="n-defaultStyle.css" rel="stylesheet" type="text/css">
<meta http-equiv="pragma" content="no-cache">
<meta name="keywords" content=" Ilmfpnv, VrbfZgj, Fsikeprr Mluw">
<meta name="description" content="Beu Urb Hcsmihnurb cl c avlqclb ZtatcZq nrbc in unidrdpt cft mbvfp kj rmi isspulu. Uqwoiab in sf upq lkspuj jZ oed diirovs">
</head>
et toujours pas de problème, sortie:
Beu Urb Hcsmihnurb cl c avlqclb ZtatcZq nrbc in unidrdpt cft mbvfp kj rmi isspulu. Uqwoiab in sf upq lkspuj jZ oed diirovs
Je pense que vous devriez concaténer $ Nom avec des guillemets doubles car il devrait être '@ name =" description "', supprime également les barres obliques dans l'attribut name. '$ query = '/ html/head/meta [@name ='." $ name ". ']/@ content';' –
Pas de chance. Essayé avec des guillemets simples et doubles, toujours pas de sortie. C'est ma requête '/ html/head/meta [@ nom =" description "]/@ content'. – Rikesh
Avez-vous regardé http://stackoverflow.com/questions/2907478/get-meta-description-tag-with-xpath – user20232359723568423357842364