php: editar el contenido del nodo xml y devolver xml

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?

preguntado el 03 de mayo de 12 a las 20:05

1 Respuestas

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

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

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.