Usando DOMDocument para criar elementos em um arquivo HTML?

Eu estava pensando se seria uma “prática ruim” criar elementos html através de DOMDocument. Abaixo está uma function na qual construir as meta tags dentro do meu :

 $head = new DOMDocument(); foreach($meta as $meta_item) { $meta_element = $head->createElement('meta'); foreach($meta_item as $k=>$v) { $attr = $head->createAttribute($k); $attr->value = $v; $meta_element->appendChild($attr); } echo($head->saveXML($meta_element)); } 

versus:

 foreach($meta as $meta_item) { $attr = ''; foreach($meta_item as $k=>$v) { $attr .= ' ' . $k . '="' . $v . '"'; } ?><meta ><?php } 

Em termos de custo, ao testar isso, parece ser trivial. Minha pergunta: não deveria ter o hábito de fazer isso? Essa é uma má idéia em avançar?

O uso de methods DOM para criar elementos HTML pode ser uma boa idéia, pois (na maioria dos casos) lida com o escape de caracteres especiais para você.

O exemplo dado pode ser simplificado ligeiramente usando setAttribute :

 appendChild($doc->createElement('html')); $head = $html->appendChild($doc->createElement('head')); $meta = array( array('charset' => 'utf-8'), array('name' => 'dc.creator', 'content' => 'Foo Bar'), ); foreach ($meta as $attributes) { $node = $head->appendChild($doc->createElement('meta')); foreach ($attributes as $key => $value) { $node->setAttribute($key, $value); } } $doc->formatOutput = true; print $doc->saveHTML(); //  //  //  //