Generando el mapa del sitio con DOMDocument: falta el AttributeNode en la salida.
Estoy intentando generar un sitemap.xml, aquí está la versión simplificada de mi código:
$dom = new \DOMDocument();
$dom->encoding = 'utf-8';
$dom->xmlVersion = '1.0';
$dom->formatOutput = true;
$xml_file_name = './sitemap.xml';
$urlset = $dom->createElement('urlset');
$attr_ = new \DOMAttr('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance");
$urlset->setAttributeNode($attr_);
$url_node = $dom->createElement('url');
$url_node_loc = $dom->createElement('loc', 'http://localhost' );
$url_node->appendChild($url_node_loc);
$url_node_lastmod = $dom->createElement('lastmod', '2021-08-03T22:17:47+04:30' );
$url_node->appendChild($url_node_lastmod);
$urlset->appendChild($url_node);
$dom->appendChild($urlset);
$dom->save($xml_file_name);
dd('done');
Aquí está la salida en mi sitemap.xml:
Este archivo XML no parece tener ninguna información de estilo asociada con él. El árbol del documento se muestra a continuación.
<urlset>
<url>
<loc>http://localhost</loc>
<lastmod>2021-08-03T22:17:47+04:30</lastmod>
</url>
</urlset>
Necesito agregar algunos atributos a mi etiqueta urlset
, aquí es cómo lo he hecho:
$attr_ = new \DOMAttr('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance");
$urlset->setAttributeNode($attr_);
Pero por alguna razón esto no aparece en mi archivo sitemap, urlset no tiene atributos.
davy.ai
Para agregar atributos a la etiqueta
urlset
, debe utilizar el métodosetAttribute()
en lugar desetAttributeNode()
. Así es como puede modificar su código para agregar el atributo:Esto agregará el atributo
xmlns:xsi
con el valorhttp://www.w3.org/2001/XMLSchema-instance` a la etiqueta
urlset`. Una vez que genere el archivo XML del mapa del sitio, debería ver el atributo en la salida.