Home > Net >  generating sitemap with DOMDocument : missing AttributeNode in the output
generating sitemap with DOMDocument : missing AttributeNode in the output

Time:11-26

im trying to generate a sitemap.xml , here is simplified version of my code

    $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');

here is the output in my sitemap.xml

This XML file does not appear to have any style information associated with it. The document tree is shown below.

<urlset>
    <url>
        <loc>http://localhost</loc>
        <lastmod>2021-08-03T22:17:47 04:30</lastmod>
    </url>
</urlset>

i need to add some attributes to my urlset tag , here is how i've did it

    $attr_ = new \DOMAttr('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance");
    $urlset->setAttributeNode($attr_);

but for some reason this doesn't show up in my sitemap file , urlset has no attributes

CodePudding user response:

Use setAttribute() instead of setAttributeNode().

$urlset->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
  • Related