2012-05-03 30 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:XML节点的内容编辑和返回XML

在我的PHP,我需要更换内容节点SUBSTR(HTML与XHTML),并用相同的结构返回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

这很奇怪。以下代码在我的电脑上完美工作: '<? $ 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

+0

它的工作原理。可能是变量名称的bcos。谢谢 – tv4free