SlideShare una empresa de Scribd logo
1 de 16
LENGUAJE DE
ETIQUETADO XML
INTRODUCCION
XML se inició como un subconjunto de SGML (structured generalized markup language),
un standard ISO para documentos estructurados que es sumamente complejo para
poder servir documentos en la web. XML es algo así como SGML simplificado, de forma
que una aplicación no necesita comprender SGML completo para interpretar un
documento, sino sólo el subconjunto que se defina. Los editores SGML, sin embargo,
pueden comprender XML.
CONCEPTO
XML es un Sistema para definir, validar y compartir formatos de documentos en la
Web. Para crear XML se tomaron las mejores partes tanto del lenguaje SGML como del
HTML. La diferencia fundamental entre HTML y XML es que el primero estaba orientado
a la presentación de datos, mientras que XML está orientado al contenido de los datos y
su tratamiento, por lo que cualquier software informático trabajará mejor con XML.
CARACTERISTICAS
XML es un subconjunto de SGML que incorpora las tres características más importantes de este:
• Extensibilidad
• Estructura
• Validación
Orientado a los contenidos no presentación.
Las etiquetas se definen para crear los documentos, no tienen un significado preestablecido.
No es sustituto de HTML.
No existe un visor genérico de XML.
Separa radicalmente el contenido y el formato de presentación
Diseñado para cualquier lenguaje y alfabeto. (encoding)
TIPOS DE ANALIZADOR XML
Para leer y actualizar, crear y manipular un documento XML, se necesita un analizador
XML.
En PHP hay dos tipos principales de analizadores XML:
 Parsers basado en Árbol
Analizadores basados ​​en árboles suben todo el documento en la memoria y
transforma el documento XML en una estructura de árbol. Analiza todo el
documento, y proporciona acceso a los elementos del árbol.
• Simple XML
• DOM
 Parsers basado en eventos
Lee el documento secuencialmente de principio a fin, sin cargarlo en memoria, de
forma que cuando encuentra un elemento se encarga de lanzar su evento asociado.
• Sax
ESTRUCTURA
Un documento XML está formado por datos de caracteres y marcado, el marcado lo
forman las etiquetas:
Estructura
EJEMPLO
<?xml version="1.0"?>
<PELICULA nombre="El Padrino" año=1985>
<PERSONAL>
</DIRECTOR nombre="Georgie Lucar">
</INTERPRETE nombre="Marlon Brando" interpreta-a="Don Corleone">
</INTERPRETE nombre="Al Pacino" interpreta-a="Michael Corleone">
</PERSONAL>
</ARGUMENTO descripción="Pelicula de mafias sicilianas en Estados Unidos">
</PELICULA>
SAX
SAX (Simple API for XML): es un enfoque para analizar documentos XML, pero no
para validarlos. se encarga de recorrer la estructura del documento generando
eventos que corresponden a los elementos que se va encontrando.
Los siguientes tres eventos son los más importantes:
• A partir de un elemento
• Final de un elemento
• los bloques CDATA
DOM
DOM (Document Object Model): representa el archivo en una estructura tipo árbol que usará
para leer el documento.
CARGA DE DOCUMENTOS
– Instanciar DOM $mixml = new DOMDocument(‘1.0’, ‘UTF-8’);
– Cargar archivo físico $mixml->load($path_archivo).
– Cargar string $mixml->loadXML($stringXML);
LECTURA DE NODOS
– Recuperar los tags con un nombre $elemento->getElementsByTagName(‘nom_tag’)
– Cada uno de estos elementos nos llega como ->item(0), ->item(1)
– Podemos iterar los resultados con un bucle foreach
– Valores de atributos con $nodo->getAttribute($nom_atributo)
EDITAR NODOS
– Podemos acceder a los nodeValues y atributos y sobreescribirlos
– Para crear nodo $nuevonodo = new DOMElement($mitag)
– Para crear nodo de texto $nuevonodo->createTextNode($contenido)
– Para añadir nuevos nodos $nodopadre->appendChild($nuevonodo)
BORRAR NODO
– Borrado de nodo $nodo->parentNode->removeChild($nodo);
GUARDAR XML
– Guardado en disco: $documento->save($rutadestino);
– Guardado a string: $stringXML = $documento->saveXML();
<?php
$elementos = new DOMDocument();
$elementos->load("allelements.xml");
$atoms = $elementos->getElementsByTagName("ATOM");
echo "<p>Hay ". $atoms->length . " átomos</p>";
foreach($atoms as $miatom)
{
$nom = $miatom->getElementsByTagName("NAME")->item(0)->nodeValue;
$numatomic = $miatom->getElementsByTagName("ATOMIC_NUMBER")->item(0)->nodeValue;
echo "<p>NUM ATOM: " . $numatomic . " , ELEMENTO: " . $nom . "</p>";
}
?>
<?php
$nuevoxml = new DOMDocument("1.0", "UTF-8");
$raiz = $nuevoxml->appendChild(new DOMElement("root"));
$taginterno = $raiz->appendChild(new DOMElement("interno"));
$text = $taginterno->appendChild(new DOMText("hola hóla"));
$string = $nuevoxml->saveXML();
header("Content-Type: text/xml");
echo $string;
?>
SIMPLE XML
SimpleXML es un analizador basado en árbol que proporciona una manera fácil de obtener el
nombre de un elemento, atributos y contenido textual si sabe estructura o el diseño del
documento XML.
SimpleXML convierte un documento XML en una estructura de datos que se pueden recorrer
como una colección de matrices y objetos. En comparación con el DOM toma menos líneas de
código para leer datos de texto de un elemento.
CARGA DE DOCUMENTOS
– simplexml_load_file($fichero_fisico)
– simplexml_load_string($xmlstring)
– simplexml_import_dom () Esta función acepta DOM con formato XML y el contenido que se
convierte en XML simple.
SimpleXML siempre espera almenos 1 elemento. Si estamos creando un documento
desde 0 deberemos inicializarlo con DOM o con un String.
ACCEDER A LOS NODOS
–echo $xml->name
– Por ejemplo, para recuperar el nombre del átomo 23 es tan fácil como:
$nomatom23 = $xml->ATOM[23]->NAME;
AÑADIR NUEVOS NODOS
Se puede añadir elementos y atributos de forma sencilla en cualquier punto con
addChild($nodo, $contenido) o addAttribute($nombre, $valor)
<?php
$elementos = simplexml_load_file("allelements.xml");
echo "<p>Hay ". count($elementos->ATOM) . " átomos</p>";
foreach($elementos->ATOM as $miatom)
{
$nom = $miatom->NAME;
$numatomic = $miatom->ATOMIC_NUMBER;
echo "<p>NUM ATOM: " . $numatomic . " , ELEMENTO: " . $nom . "</p>";
}
?>
<?php
/* Siempre necesita almenos 1 elemento, podemos usar DOM */
$header = new DOMDocument("1.0", "UTF-8");
$raiz = $header->appendChild(new DOMElement("root"));
$nuevoxml = simplexml_import_dom($header);
/* O podemos usar un string directamente */
$nuevoxml = simplexml_load_string("<?xml version='1.0' encoding='UTF-8'?><root></root>");
$taginterno = $nuevoxml->addChild("interno","hóla hola");
header("Content-Type: text/xml");
echo $nuevoxml->asXML();

Más contenido relacionado

La actualidad más candente

SAX (con PHP)
SAX (con PHP)SAX (con PHP)
SAX (con PHP)DaCoom
 
Dom
DomDom
DomPEPE
 
busqueda de informacion en internet 1
busqueda de informacion en internet 1busqueda de informacion en internet 1
busqueda de informacion en internet 1fabiolamazon
 
Procesamiento de XML en C#
Procesamiento de XML en C#Procesamiento de XML en C#
Procesamiento de XML en C#Jordan-P
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sqlguest5f0fa0
 
Reconocimiento del ambiente de trabajo de excel
Reconocimiento del ambiente de trabajo de excelReconocimiento del ambiente de trabajo de excel
Reconocimiento del ambiente de trabajo de excelSOLEDADMM
 
Análisis y diseño ii sql php
Análisis y diseño ii sql phpAnálisis y diseño ii sql php
Análisis y diseño ii sql phplina9203
 
COMO UTILIZAR SQL EN VISUAL BASIC 6.0
COMO UTILIZAR SQL EN VISUAL BASIC 6.0COMO UTILIZAR SQL EN VISUAL BASIC 6.0
COMO UTILIZAR SQL EN VISUAL BASIC 6.0erikasarchi
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completoBoris Salleg
 
Script active directory
Script active directoryScript active directory
Script active directorymurilloyair
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlCristian Garzon
 

La actualidad más candente (19)

SAX (con PHP)
SAX (con PHP)SAX (con PHP)
SAX (con PHP)
 
Clase xml as3
Clase xml as3Clase xml as3
Clase xml as3
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Dom
DomDom
Dom
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Sql y vb.pptx1
Sql y vb.pptx1Sql y vb.pptx1
Sql y vb.pptx1
 
busqueda de informacion en internet 1
busqueda de informacion en internet 1busqueda de informacion en internet 1
busqueda de informacion en internet 1
 
Procesamiento de XML en C#
Procesamiento de XML en C#Procesamiento de XML en C#
Procesamiento de XML en C#
 
Presentacion Sql
Presentacion SqlPresentacion Sql
Presentacion Sql
 
Reconocimiento del ambiente de trabajo de excel
Reconocimiento del ambiente de trabajo de excelReconocimiento del ambiente de trabajo de excel
Reconocimiento del ambiente de trabajo de excel
 
Análisis y diseño ii sql php
Análisis y diseño ii sql phpAnálisis y diseño ii sql php
Análisis y diseño ii sql php
 
COMO UTILIZAR SQL EN VISUAL BASIC 6.0
COMO UTILIZAR SQL EN VISUAL BASIC 6.0COMO UTILIZAR SQL EN VISUAL BASIC 6.0
COMO UTILIZAR SQL EN VISUAL BASIC 6.0
 
Html danny
Html dannyHtml danny
Html danny
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Omar unidad 07 base de datos
Omar unidad 07 base de datosOmar unidad 07 base de datos
Omar unidad 07 base de datos
 
Script active directory
Script active directoryScript active directory
Script active directory
 
01 estructura
01 estructura01 estructura
01 estructura
 
Connection
ConnectionConnection
Connection
 
Lenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sqlLenguaje estructurado de consultas sql
Lenguaje estructurado de consultas sql
 

Similar a Xml (20)

Curso xml
Curso xmlCurso xml
Curso xml
 
Diferencias entre XML y HTML
Diferencias entre XML y HTMLDiferencias entre XML y HTML
Diferencias entre XML y HTML
 
Colima2000
Colima2000Colima2000
Colima2000
 
Xml
XmlXml
Xml
 
XML (eXtensible Markup Lenguage) Ejemplo
XML  (eXtensible Markup Lenguage) EjemploXML  (eXtensible Markup Lenguage) Ejemplo
XML (eXtensible Markup Lenguage) Ejemplo
 
Xml
XmlXml
Xml
 
Lenguaje XML
Lenguaje XMLLenguaje XML
Lenguaje XML
 
Xml
XmlXml
Xml
 
Xml
XmlXml
Xml
 
Archivo xml
Archivo xmlArchivo xml
Archivo xml
 
XML Básico
XML BásicoXML Básico
XML Básico
 
Guía+básica+de+características+de+archivos+.pdf
Guía+básica+de+características+de+archivos+.pdfGuía+básica+de+características+de+archivos+.pdf
Guía+básica+de+características+de+archivos+.pdf
 
Archivo xml
Archivo xmlArchivo xml
Archivo xml
 
Presentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.pptPresentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.ppt
 
Generación de Interfaces a partir de XML
Generación de Interfaces a partir de XMLGeneración de Interfaces a partir de XML
Generación de Interfaces a partir de XML
 
Xml
XmlXml
Xml
 
Xml
XmlXml
Xml
 
Unidad 1 lenguajes de marcas
Unidad 1   lenguajes de marcasUnidad 1   lenguajes de marcas
Unidad 1 lenguajes de marcas
 
Introxml
IntroxmlIntroxml
Introxml
 
Xml
XmlXml
Xml
 

Último

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para dRodrigoAveranga2
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 

Último (6)

NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
memoria de la empresa Pil Andina para d
memoria de la empresa Pil Andina para  dmemoria de la empresa Pil Andina para  d
memoria de la empresa Pil Andina para d
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 

Xml

  • 2. INTRODUCCION XML se inició como un subconjunto de SGML (structured generalized markup language), un standard ISO para documentos estructurados que es sumamente complejo para poder servir documentos en la web. XML es algo así como SGML simplificado, de forma que una aplicación no necesita comprender SGML completo para interpretar un documento, sino sólo el subconjunto que se defina. Los editores SGML, sin embargo, pueden comprender XML.
  • 3. CONCEPTO XML es un Sistema para definir, validar y compartir formatos de documentos en la Web. Para crear XML se tomaron las mejores partes tanto del lenguaje SGML como del HTML. La diferencia fundamental entre HTML y XML es que el primero estaba orientado a la presentación de datos, mientras que XML está orientado al contenido de los datos y su tratamiento, por lo que cualquier software informático trabajará mejor con XML.
  • 4. CARACTERISTICAS XML es un subconjunto de SGML que incorpora las tres características más importantes de este: • Extensibilidad • Estructura • Validación Orientado a los contenidos no presentación. Las etiquetas se definen para crear los documentos, no tienen un significado preestablecido. No es sustituto de HTML. No existe un visor genérico de XML. Separa radicalmente el contenido y el formato de presentación Diseñado para cualquier lenguaje y alfabeto. (encoding)
  • 5. TIPOS DE ANALIZADOR XML Para leer y actualizar, crear y manipular un documento XML, se necesita un analizador XML. En PHP hay dos tipos principales de analizadores XML:  Parsers basado en Árbol Analizadores basados ​​en árboles suben todo el documento en la memoria y transforma el documento XML en una estructura de árbol. Analiza todo el documento, y proporciona acceso a los elementos del árbol. • Simple XML • DOM  Parsers basado en eventos Lee el documento secuencialmente de principio a fin, sin cargarlo en memoria, de forma que cuando encuentra un elemento se encarga de lanzar su evento asociado. • Sax
  • 6. ESTRUCTURA Un documento XML está formado por datos de caracteres y marcado, el marcado lo forman las etiquetas: Estructura
  • 7. EJEMPLO <?xml version="1.0"?> <PELICULA nombre="El Padrino" año=1985> <PERSONAL> </DIRECTOR nombre="Georgie Lucar"> </INTERPRETE nombre="Marlon Brando" interpreta-a="Don Corleone"> </INTERPRETE nombre="Al Pacino" interpreta-a="Michael Corleone"> </PERSONAL> </ARGUMENTO descripción="Pelicula de mafias sicilianas en Estados Unidos"> </PELICULA>
  • 8. SAX SAX (Simple API for XML): es un enfoque para analizar documentos XML, pero no para validarlos. se encarga de recorrer la estructura del documento generando eventos que corresponden a los elementos que se va encontrando. Los siguientes tres eventos son los más importantes: • A partir de un elemento • Final de un elemento • los bloques CDATA
  • 9. DOM DOM (Document Object Model): representa el archivo en una estructura tipo árbol que usará para leer el documento. CARGA DE DOCUMENTOS – Instanciar DOM $mixml = new DOMDocument(‘1.0’, ‘UTF-8’); – Cargar archivo físico $mixml->load($path_archivo). – Cargar string $mixml->loadXML($stringXML);
  • 10. LECTURA DE NODOS – Recuperar los tags con un nombre $elemento->getElementsByTagName(‘nom_tag’) – Cada uno de estos elementos nos llega como ->item(0), ->item(1) – Podemos iterar los resultados con un bucle foreach – Valores de atributos con $nodo->getAttribute($nom_atributo) EDITAR NODOS – Podemos acceder a los nodeValues y atributos y sobreescribirlos – Para crear nodo $nuevonodo = new DOMElement($mitag) – Para crear nodo de texto $nuevonodo->createTextNode($contenido) – Para añadir nuevos nodos $nodopadre->appendChild($nuevonodo)
  • 11. BORRAR NODO – Borrado de nodo $nodo->parentNode->removeChild($nodo); GUARDAR XML – Guardado en disco: $documento->save($rutadestino); – Guardado a string: $stringXML = $documento->saveXML();
  • 12. <?php $elementos = new DOMDocument(); $elementos->load("allelements.xml"); $atoms = $elementos->getElementsByTagName("ATOM"); echo "<p>Hay ". $atoms->length . " átomos</p>"; foreach($atoms as $miatom) { $nom = $miatom->getElementsByTagName("NAME")->item(0)->nodeValue; $numatomic = $miatom->getElementsByTagName("ATOMIC_NUMBER")->item(0)->nodeValue; echo "<p>NUM ATOM: " . $numatomic . " , ELEMENTO: " . $nom . "</p>"; } ?> <?php $nuevoxml = new DOMDocument("1.0", "UTF-8"); $raiz = $nuevoxml->appendChild(new DOMElement("root")); $taginterno = $raiz->appendChild(new DOMElement("interno")); $text = $taginterno->appendChild(new DOMText("hola hóla")); $string = $nuevoxml->saveXML(); header("Content-Type: text/xml"); echo $string; ?>
  • 13. SIMPLE XML SimpleXML es un analizador basado en árbol que proporciona una manera fácil de obtener el nombre de un elemento, atributos y contenido textual si sabe estructura o el diseño del documento XML. SimpleXML convierte un documento XML en una estructura de datos que se pueden recorrer como una colección de matrices y objetos. En comparación con el DOM toma menos líneas de código para leer datos de texto de un elemento.
  • 14. CARGA DE DOCUMENTOS – simplexml_load_file($fichero_fisico) – simplexml_load_string($xmlstring) – simplexml_import_dom () Esta función acepta DOM con formato XML y el contenido que se convierte en XML simple. SimpleXML siempre espera almenos 1 elemento. Si estamos creando un documento desde 0 deberemos inicializarlo con DOM o con un String.
  • 15. ACCEDER A LOS NODOS –echo $xml->name – Por ejemplo, para recuperar el nombre del átomo 23 es tan fácil como: $nomatom23 = $xml->ATOM[23]->NAME; AÑADIR NUEVOS NODOS Se puede añadir elementos y atributos de forma sencilla en cualquier punto con addChild($nodo, $contenido) o addAttribute($nombre, $valor)
  • 16. <?php $elementos = simplexml_load_file("allelements.xml"); echo "<p>Hay ". count($elementos->ATOM) . " átomos</p>"; foreach($elementos->ATOM as $miatom) { $nom = $miatom->NAME; $numatomic = $miatom->ATOMIC_NUMBER; echo "<p>NUM ATOM: " . $numatomic . " , ELEMENTO: " . $nom . "</p>"; } ?> <?php /* Siempre necesita almenos 1 elemento, podemos usar DOM */ $header = new DOMDocument("1.0", "UTF-8"); $raiz = $header->appendChild(new DOMElement("root")); $nuevoxml = simplexml_import_dom($header); /* O podemos usar un string directamente */ $nuevoxml = simplexml_load_string("<?xml version='1.0' encoding='UTF-8'?><root></root>"); $taginterno = $nuevoxml->addChild("interno","hóla hola"); header("Content-Type: text/xml"); echo $nuevoxml->asXML();