Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/01/2018, 10:16
primary
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: crear un id en un xml

no me estas entendiendo, yo quiero crear un documento xml algo como esto:

<root>
<dato id='22'>
<name>pablo lopez</name>
<detalle>persona</detalle>
</dato>
</root>

esto lo creo con algo como esto mas o menos:

Código PHP:
Ver original
  1. $dom=new DOMDocument();
  2. $root=$dom->createElement('root');
  3. $dom->appendChild($root);
  4. $dato=$dom->createElement('dato');
  5. $id=$dom->createAttribute('id');
  6. $id->value=22;
  7. $dato->appendChild($id);
  8. $root->appendChild($dato);
  9. $name=$dom->createElement('name',"pablo lopez");
  10. $dato->appendChild($name);
  11. $detalle=$dom->createElement('detalle',"persona");
  12. $dato->appendChild($detalle);
  13. echo $dom->saveXML();

esto es a modo de ejemplo(quizas tiene errores de sintaxis), lo que pasa que si luego quiero buscar en el dom por su id con getElementById de DOMDocument no me detecta el id porque no esta declarado en DTD y quiero saber como se deberia hacer para declararlo en DTD y pueda usar getElementById.
espero que ahora se entienda mi problema, de verdad que estube buscando bastante pero nada, si te dicen que se debe declarar como DTD pero no sale como hacerlo tampoco hay ejemplos en el manual php.
se que podria funcionar añadiendo un atributo tipo ns algo asi xmls:id='22' no lo probe pero me gustaria saber como hacerlo declarando el id en doctype.

mas o menos el doctype tiene que ser algo asi:

Código HTML:
Ver original
  1. <!DOCTYPE root[<!ATTLIST dato id ID #REQUIRED>]>
saludos






echo $dom->saveXML();

Última edición por primary; 05/01/2018 a las 10:30