I've searched from other topic like what I've done for many years but I couldn't get any answer. and it is first time to ask here.
Original code
<?xml version="1.0" ?>
<files>
 <fileGroup id="0">
  <file_val id="000">
   <file_val_sub id="0000" extension="exe">file1.exe</file_val_sub>
   <file_val_sub id="0001" extension="doc">docu.doc</file_val_sub>
   <file_val_sub id="0002" extension="mp3">song.mp3</file_val_sub>
  </file_val>
  <file_val id="001">
   <file_val_sub id="0010" extension="csv">spr.csv</file_val_sub>
   <file_val_sub id="0011" extension="jpg">img.jpg</file_val_sub>
   <file_val_sub id="0012" extension="gif">pic.gif</file_val_sub>
  </file_val>
  <file_val id="002"extension="csv">file22.csv</file_val_sub>
  <file_val id="003"extension="txt">file33.txt</file_val_sub>
  <file_val id="004"extension="doc">file44.doc</file_val_sub>
  ...
 </fileGroup>
</files>
I want to update the xml file as below example.
<?xml version="1.0" ?>
<files>
 <fileGroup id="0">
  <file_val id="000">
   <file_val_sub id="0000" extension="exe">http://mysite.com/file1.exe</file_val_sub>
   <file_val_sub id="0001" extension="doc">http://mysite.com/docu.doc</file_val_sub>
   <file_val_sub id="0002" extension="mp3">http://mysite.com/song.mp3</file_val_sub>
  </file_val>
  <file_val id="001">
   <file_val_sub id="0010" extension="csv">http://mysite.com/spr.csv</file_val_sub>
   <file_val_sub id="0011" extension="jpg">http://mysite.com/img.jpg</file_val_sub>
   <file_val_sub id="0012" extension="gif">http://mysite.com/pic.gif</file_val_sub>
  </file_val>
  <file_val id="002"extension="csv">http://mysite.com/file22.csv</file_val_sub>
  <file_val id="003"extension="txt">http://mysite.com/file33.txt</file_val_sub>
  <file_val id="004"extension="doc">http://mysite.com/file44.doc</file_val_sub>
  ...
 </fileGroup>
</files>
I could get and find value using simplexml_load_file() but I cannot modify and save it.
$xml =simplexml_load_file($xml_url);
Thank you in advance.
EDITED...
My code is not really simple and dirty, but I could modify and save it at least... If there is more better way to do this (of course, there are), please let me know.
function getXmlForPreview($xml_url,$val,$file_path)
{    
  // Load File
  $xml =simplexml_load_file($xml_url);
    // Check child nodes
    $multi_node = true;
    if (count($xml->layout->layout_val) == 1) {
      $multi_node = false;
    }
    else if (count($xml->layout->layout_val) > 1) {
      $multi_node = true;
    }
    if ($multi_node)
    {
        for($i=0;$i<count($xml->layout->layout_val);$i++)
        {       
            for($j=0;$j<count($xml->layout->layout_val[$i]);$j++)
            {
               $xml->layout->layout_val[$i]->layout_val_sub[$j][0] = $val . (string) $xml->layout->layout_val[$i]->layout_val_sub[$j][0];
            }
        }
     }
     else // no multi child
     {
       for($j=0;$j<count($xml->layout->layout_val[0]);$j++)
       {
          $xml->layout->layout_val[0]->layout_val_sub[$j][0] = $val . (string) $xml->layout->layout_val[0]->layout_val_sub[$j][0];
       }
     }
     $xml->asXML($file_path);
}
getXmlForPreview("http://mysite.com/xmls/abc.xml",""http://mysite.com/,"/var/www/new_xml.xml");
 
    