2011-05-13 15 views
20

¿Alguna idea sobre cómo puedo conseguir los PHP SimplXMLElement para dar inicio a la siguiente?SimpleXml cómo establecer correctamente la codificación y xmins?

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://earth.google.com/kml/2.2"> 

La raíz principal será entonces:

<Document></Document> 

O ¿Uso simplexml_load_string() para configurarlo?

Contexto: yo estoy extendiendo SimpleXMLElement para crear algunos archivos KML.

EDITAR

En realidad, el establecimiento de las xmlns KML era ridículamente fácil de hacer:

new simpleXMLElement('<kml xmlns="http://earth.google.com/kml/2.2"> 
<Document></Document></kml>'); 

Sólo cómo configurar encoding = "UTF-8" que me está molestando, aparentemente el KML es aceptable sin eso, pero aún me gustaría entender cómo hacerlo si pos.

Respuesta

43
new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>' 
          .'<kml xmlns="http://earth.google.com/kml/2.2">' 
          .'<Document></Document></kml>'); 
+1

Blimey, how simple. Creo que estaba llegando allí lentamente. Así que la forma de pensar de esto es que si no pasa una cadena implícitamente en el constructor, que sólo va a chorro En para usted. Saludos Oz, agradable. Estaba bajo la creencia errónea de que de alguna manera me metía con los atributos. – Cups

+1

Esto puede haber sido obvio, pero el resultado 'root = $ SimpleXML nueva ...' elemento no apunta a 'Document', por lo que' $ Raíz> addChild (...) 'añadiría cosas junto a él de forma automática - véase el ejemplo http://sandbox.onlinephpfunctions.com/code/d33041ddf62087a5f4d7c67eb8c4983d4ef64116 – drzaus

+0

para explicar un poco más sobre @drzaus comentario, no apunta a 'Document' porque el elemento raíz en la cadena XML es el elemento' kml 'de los cuales' Document' es hijo de. – PhoneixS

Cuestiones relacionadas