php: editar el contenido del nodo xml y devolver xml
Frecuentes
Visto 130 veces
0
Aquí está mi XML<response> <statusCode>200</statusCode> <statusText>OK</statusText> <data> <getAssetResponse> <assetId>89898</assetId> <content> some text with HTML content </content> </getAssetResponse> </data></response>
En mi php, necesito reemplazar substr del nodo de contenido (HTML con xhtml) y devolver el XML con la misma estructura.
<?php $file = file_get_contents("filx.xml"); $doc = DOMDocument::loadXML($file); $data = $dom->getElementsByTagName("data"); foreach($data as $node){echo "hello";}
mi inicio simple no funciona... ¿Qué debo hacer para obtener el contenido del nodo?
1 Respuestas
0
Si solo necesita reemplazar el contenido del nodo de contenido, tal vez sea más fácil usar SimpleXML, así:
<?
$xml_object = simplexml_load_file("test.xml");
$xml_object->data->getAssetResponse->content = "Test 123";
print $xml_object->asXML();
?>
Resultado:
<?xml version="1.0"?>
<response>
<statusCode>200</statusCode>
<statusText>OK</statusText>
<data>
<getAssetResponse>
<assetId>89898</assetId>
<content>Test 123</content>
</getAssetResponse>
</data>
</response>
contestado el 03 de mayo de 12 a las 20:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php domdocument ixmldomdocument or haz tu propia pregunta.
Gracias. Genial. Pero quiero buscar y reemplazar... Entonces, probé lo siguiente... datos->getAssetResponse->contenido; $datos-nuevos = str_replace("NUEVO", "VIEJO", $contenido-de-datos); $xml_object->data->getAssetResponse->content = $new-data; imprimir $xml_objeto->asXML(); ?> no funciona - tv4gratis
Eso es raro... El siguiente código funciona perfecto en mi PC:
<? $xml_object = simplexml_load_file("test.xml"); $content = $xml_object->data->getAssetResponse->content; $content = str_replace("Test", "TEST", $content ); $xml_object->data->getAssetResponse->content = $content; print $xml_object->asXML(); ?>
- Pieter