$content = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><root>';
foreach($productos as $producto) {
$content .= "<producto>";
$content .= "<nombre>".$producto->nombre."</nombre>";
$content .= "<descripcion>".$producto->descripcion."</descripcion>";
$content .= "<imagen>.$producto->imagen.</imagen>";
$content .= "</producto>";
}
$content .= "</root>";
header( 'Content-Description: File Transfer');
header( 'Content-Type: application/xml' );
header( 'Content-Disposition: attachment; filename=productos.xml' );
header( 'Content-Transfer-Encoding: binary');
header( 'Connection: Keep-Alive');
header( 'Expires: 0');
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0');
header( 'Pragma: public' );
header( 'Content-Length: '.strlen( $content ) );
echo $content; // genera el XML
Mostrando entradas con la etiqueta XML. Mostrar todas las entradas
Mostrando entradas con la etiqueta XML. Mostrar todas las entradas
Crear XML desde php
Ajax: Leer XML
El fichero XML, aparte de la cabecera de codificación (encoding="UTF-8"), tiene que estar creado en UTF-8.
peliculas.xml:
index.php:
peliculas.xml:
<?xml version="1.0" encoding="UTF-8"?>
<cine>
<pelicula>
<titulo>Lo que el viento se llevó</titulo>
<director>Victor Fleming</director>
<anno>1939</anno>
</pelicula>
<pelicula>
<titulo>Rebeca</titulo>
<director>Alfred Hitchcock</director>
<anno>1940</anno>
</pelicula>
<pelicula>
<titulo>Qué verde era mi valle</titulo>
<director>John Ford</director>
<anno>1941</anno>
</pelicula>
</cine>
index.php:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
</head>
<body>
<ul></ul>
<script>
$.ajax({
type: "GET",
url: "./peliculas.xml",
dataType: "xml",
// contentType: "application/x-www-form-urlencoded;charset=utf-8",
error: function (e) {
console.log("XML reading Failed: ", e);
},
success: function (response) {
$("ul").children().remove();
$(response).find("pelicula").each(function () {
$("ul").append('<li>'+$(this).find('titulo').text()+'</li>');
$("ul").append('<li>'+$(this).find('director').text()+'</li>');
$("ul").append('<li>'+$(this).find('anno').text()+'</li>');
});
}
});
</script>
</body>
</html>
Convertir un fichero XML a Array
$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
XML: Crear un fichero XML desde PHP
$fp = fopen("fichero1.xml", "w+");
fputs($fp, '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL);
fputs($fp, '
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'.PHP_EOL);
foreach ($arrLinks as $key =>$valor) {
$cadena = "<url>".PHP_EOL."<loc>".$key."</loc>".PHP_EOL."</url>";
fputs($fp, $cadena.PHP_EOL);
}
fputs($fp, "</urlset>".PHP_EOL);
fclose($fp);
fputs($fp, '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL);
fputs($fp, '
<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">'.PHP_EOL);
foreach ($arrLinks as $key =>$valor) {
$cadena = "<url>".PHP_EOL."<loc>".$key."</loc>".PHP_EOL."</url>";
fputs($fp, $cadena.PHP_EOL);
}
fputs($fp, "</urlset>".PHP_EOL);
fclose($fp);
XML: Mostrar el contenido de un fichero XML en PHP
peliculas.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!-- indica la version del documento XML -->
<raiz> <!-- es el tag raiz, debe ser unico -->
<pelicula>
<titulo>Lo que el viento se llevó</titulo>
<anno>1939</anno>
</pelicula>
<pelicula>
<titulo>Rebeca</titulo>
<anno>1940</anno>
</pelicula>
</raiz>
--------------------------------------------------
$xml = simplexml_load_file("peliculas.xml");
// print_r($xml);
foreach($xml->children() as $child) {
echo $child->titulo."<br>";
}
------------------------------------------------------------
Mostrar todo el contenido de todo un XML de forma recursiva:
peliculas2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!-- indica la version del documento XML -->
<raiz> <!-- es el tag raiz, debe ser unico -->
<pelicula>
<titulo>Lo que el viento se llevó</titulo>
<anno>1939</anno>
<actores>
<actor>
<nombre>Vivien Leigh</nombre>
<nacionalidad>Inglaterra</nacionalidad>
</actor>
<actor>
<nombre>Clark Gable</nombre>
<nacionalidad>EEUU</nacionalidad>
</actor>
</actores>
</pelicula>
<pelicula>
<titulo>Rebeca</titulo>
<anno>1940</anno>
<actores>
<actor>
<nombre>Joan Fontaine</nombre>
<nacionalidad>EEUU</nacionalidad>
</actor>
<actor>
<nombre>Laurence Olivier</nombre>
<nacionalidad>Inglaterra</nacionalidad>
</actor>
<actor>
<nombre>George Sanders</nombre>
<nacionalidad>EEUU</nacionalidad>
</actor>
</actores>
</pelicula>
</raiz>
--------------------------------------------------------------------
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
</head>
<body>
<?php
// **********************************************
function displayChildrenRecursive($xmlObj,$depth=0) {
foreach($xmlObj->children() as $child) {
echo "<br>";
echo str_repeat(" ",$depth)."<strong>".$child->getName()."</strong>: ".$child;
displayChildrenRecursive($child,$depth+1);
}
}
$xml = simplexml_load_file("peliculas2.xml");
displayChildrenRecursive($xml);?>
</body>
</html>
Más información en: http://www.anerbarrena.com/php-simplexml-4382/
<?xml version="1.0" encoding="UTF-8" ?>
<!-- indica la version del documento XML -->
<raiz> <!-- es el tag raiz, debe ser unico -->
<pelicula>
<titulo>Lo que el viento se llevó</titulo>
<anno>1939</anno>
</pelicula>
<pelicula>
<titulo>Rebeca</titulo>
<anno>1940</anno>
</pelicula>
</raiz>
--------------------------------------------------
$xml = simplexml_load_file("peliculas.xml");
// print_r($xml);
foreach($xml->children() as $child) {
echo $child->titulo."<br>";
}
------------------------------------------------------------
Mostrar todo el contenido de todo un XML de forma recursiva:
peliculas2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!-- indica la version del documento XML -->
<raiz> <!-- es el tag raiz, debe ser unico -->
<pelicula>
<titulo>Lo que el viento se llevó</titulo>
<anno>1939</anno>
<actores>
<actor>
<nombre>Vivien Leigh</nombre>
<nacionalidad>Inglaterra</nacionalidad>
</actor>
<actor>
<nombre>Clark Gable</nombre>
<nacionalidad>EEUU</nacionalidad>
</actor>
</actores>
</pelicula>
<pelicula>
<titulo>Rebeca</titulo>
<anno>1940</anno>
<actores>
<actor>
<nombre>Joan Fontaine</nombre>
<nacionalidad>EEUU</nacionalidad>
</actor>
<actor>
<nombre>Laurence Olivier</nombre>
<nacionalidad>Inglaterra</nacionalidad>
</actor>
<actor>
<nombre>George Sanders</nombre>
<nacionalidad>EEUU</nacionalidad>
</actor>
</actores>
</pelicula>
</raiz>
--------------------------------------------------------------------
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
</head>
<body>
<?php
// **********************************************
function displayChildrenRecursive($xmlObj,$depth=0) {
foreach($xmlObj->children() as $child) {
echo "<br>";
echo str_repeat(" ",$depth)."<strong>".$child->getName()."</strong>: ".$child;
displayChildrenRecursive($child,$depth+1);
}
}
$xml = simplexml_load_file("peliculas2.xml");
displayChildrenRecursive($xml);?>
</body>
</html>
Más información en: http://www.anerbarrena.com/php-simplexml-4382/
XML: Convertir un array a XML
function array_to_XML($data, $rootNodeName = 'results', $xml=NULL){
if ($xml == null){
$xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$rootNodeName />");
}
foreach($data as $key => $value){
if (is_numeric($key)){
$key = "nodeId_". (string) $key;
}
if (is_array($value)){
$node = $xml->addChild($key);
array_to_XML($value, $rootNodeName, $node);
} else {
$value = htmlentities($value);
$xml->addChild($key, $value);
}
}
return html_entity_decode($xml->asXML());
}
if ($xml == null){
$xml = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$rootNodeName />");
}
foreach($data as $key => $value){
if (is_numeric($key)){
$key = "nodeId_". (string) $key;
}
if (is_array($value)){
$node = $xml->addChild($key);
array_to_XML($value, $rootNodeName, $node);
} else {
$value = htmlentities($value);
$xml->addChild($key, $value);
}
}
return html_entity_decode($xml->asXML());
}
Suscribirse a:
Entradas (Atom)
