2012-05-03 14 views
0

はここに私のXML <response> <statusCode>200</statusCode> <statusText>OK</statusText> <data> <getAssetResponse> <assetId>89898</assetId> <content> some text with HTML content </content> </getAssetResponse> </data></response>私のPHPでPHP:XMLノードのコンテンツの編集と返すXML

ですが、私はコンテンツノードSUBSTR(XHTMLとHTML)を交換し、同じ構造を持つXMLを返す必要があります。

<?php $file = file_get_contents("filx.xml"); $doc = DOMDocument::loadXML($file); $data = $dom->getElementsByTagName("data"); foreach($data as $node){echo "hello";}

私のシンプルなスタートが動作していない...何私は、ノードのコンテンツを取得するために何をする必要がありますか?

答えて

0

あなたが唯一のコンテンツ・ノードの内容を交換する必要がある場合、このように、SimpleXMLをを使用するかもしれない簡単です:

<? 
$xml_object = simplexml_load_file("test.xml"); 
$xml_object->data->getAssetResponse->content = "Test 123"; 
print $xml_object->asXML(); 
?> 

結果:

<?xml version="1.0"?> 
    <response> 
    <statusCode>200</statusCode> 
    <statusText>OK</statusText> 
    <data> 
     <getAssetResponse> 
     <assetId>89898</assetId> 
     <content>Test 123</content> 
     </getAssetResponse> 
    </data> 
    </response> 
+0

感謝。それは素晴らしいことです。しかし、私は探して交換したいと思ったので、私は以下を試しました... <?php $ input = "file.xml"; $ xml = simplexml_load_file($ input); $ data-content = $ xml-> data-> getAssetResponse-> content; $ new-data = str_replace( "NEW"、 "OLD"、$ data-content); $ xml_object-> data-> getAssetResponse-> content = $ new-data; print $ xml_object-> asXML(); ?>は動作していません – tv4free

+0

これは奇妙です..以下のコードは私のPCで完璧に動作します: '<? $ xml_object = simplexml_load_file( "test.xml"); $ content = $ xml_object-> data-> getAssetResponse-> content; $ content = str_replace( "テスト"、 "テスト"、$コンテンツ); $ xml_object-> data-> getAssetResponse-> content = $ content; print $ xml_object-> asXML(); ?> ' – Pieter

+0

これは機能します。変数名のbcosかもしれません。ありがとう – tv4free

関連する問題