Tengo dificultades para entender cómo usar el objeto DOMElement en PHP. He encontrado este código, pero no estoy muy seguro de que es aplicable a mí:Uso de PHP para obtener el elemento DOM
$dom = new DOMDocument();
$dom->loadHTML("index.php");
$div = $dom->getElementsByTagName('div');
foreach ($div->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
echo "Attribute '$name' :: '$value'<br />";
}
Básicamente lo que necesito es buscar en el DOM para una element
con una determinada id
, después de lo cual punto que necesitan para extraer un no -standard attribute
(es decir, uno que inventé y puse con JS) para que pueda ver el valor de eso. La razón es que necesito una pieza del $_GET
y una pieza que está en el HTML basada en un redireccionamiento. Si alguien pudiera explicar cómo uso DOMDocument para este propósito, sería útil. Realmente estoy luchando por entender qué está pasando y cómo implementarlo correctamente, porque claramente no lo estoy haciendo bien.
EDITAR (donde estoy basado en comentario):
Ésta es mis líneas de código 4-26 para la referencia:
<div id="column_profile">
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/peripheral/profile.php");
$searchResults = isset($_GET["s"]) ? performSearch($_GET["s"]) : "";
$dom = new DOMDocument();
$dom->load("index.php");
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
foreach ($div->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
echo "Attribute '$name' :: '$value'<br />";
}
}
$div = $dom->getElementById('currentLocation');
$attr = $div->getAttribute('srckey');
echo "<h1>{$attr}</a>";
?>
</div>
<div id="column_main">
Aquí está el mensaje de error que estoy recibiendo:
Warning: DOMDocument::load() [domdocument.load]: Extra content at the end of the document in ../public_html/index.php, line: 26 in ../public_html/index.php on line 10
Fatal error: Call to a member function getAttribute() on a non-object in ../public_html/index.php on line 21
'index.hp' no se ejecutará. 'loadHTML' solo lee el contenido del archivo, no lo ejecuta. Es posible que deba hacer algo como: '$ dom-> loadHTML (file_get_contents ('http: //localhost/index.php'))'. –