XML edit in php -


in xml file have structure (with <post>repeating) :

<data> <post>     <deal_id>479</deal_id>     <deal_title><![cdata[Δίπλωμα Μηχανής, στη Σχολή Οδηγών Παραστατίδης στον Εύοσμο, μόνο με 49€]]></deal_title>     <deal_url>http://domain.com/site/shop/autokinito-el/diplwma-mixanis-sxoli-odigwn-parastatidis-euosmos/</deal_url>     <deal_city><![cdata[Θεσσαλονίκη]]></deal_city>     <deal_price><![cdata[49]]></deal_price>     <deal_previous_price><![cdata[125]]></deal_previous_price>     <deal_discount><![cdata[60.8]]></deal_discount>     <deal_start><![cdata[2016-01-10 00:00:00]]></deal_start>     <deal_end><![cdata[2016-04-01 00:00:00]]></deal_end>     <deal_image>         <image>             <file>http://domain.com/site/wp-content/uploads/2015/09/c700x420.jpg</file>             <title>c700x420</title>             <caption></caption>             <description></description>             <alt></alt>         </image>         <image>             <file>http://domain.com/site/wp-content/uploads/2015/09/diploma1.jpg</file>             <title>diploma1</title>             <caption></caption>             <description></description>             <alt></alt>         </image>     </deal_image>     <deal_sales><![cdata[0]]></deal_sales>     <deal_active><![cdata[true]]></deal_active></post></data> 

and transform <deal_image>

<deal_image>http://domain.com/site/wp-content/uploads/2015/09/c700x420.jpg</deal_image> 

which means keep first appearing jpg , discard rest..and <post>

how can php?

so desired output this:

<data> <post>     <deal_id>479</deal_id>     <deal_title><![cdata[Δίπλωμα Μηχανής, στη Σχολή Οδηγών Παραστατίδης στον Εύοσμο, μόνο με 49€]]></deal_title>     <deal_url>http://domain.com/site/shop/autokinito-el/diplwma-mixanis-sxoli-odigwn-parastatidis-euosmos/</deal_url>     <deal_city><![cdata[Θεσσαλονίκη]]></deal_city>     <deal_price><![cdata[49]]></deal_price>     <deal_previous_price><![cdata[125]]></deal_previous_price>     <deal_discount><![cdata[60.8]]></deal_discount>     <deal_start><![cdata[2016-01-10 00:00:00]]></deal_start>     <deal_end><![cdata[2016-04-01 00:00:00]]></deal_end>     <deal_image>http://domain.com/site/wp-content/uploads/2015/09/c700x420.jpg</deal_image>     <deal_sales><![cdata[0]]></deal_sales>     <deal_active><![cdata[true]]></deal_active></post></data> 

note deal_image tag kept url of first image , ignored rest. in xml file there lots of <post></post> sections, should processed in iteration.

first remove image childs of deal_image, assign image value deal_image

<?php  $dom = new domdocument(); $dom->formatoutput = true; $dom->loadxml('<data> <post>     <deal_id>479</deal_id>     <deal_title><![cdata[Δίπλωμα Μηχανής, στη Σχολή Οδηγών Παραστατίδης στον Εύοσμο, μόνο με 49€]]></deal_title>     <deal_url>http://domain.com/site/shop/autokinito-el/diplwma-mixanis-sxoli-odigwn-parastatidis-euosmos/</deal_url>     <deal_city><![cdata[Θεσσαλονίκη]]></deal_city>     <deal_price><![cdata[49]]></deal_price>     <deal_previous_price><![cdata[125]]></deal_previous_price>     <deal_discount><![cdata[60.8]]></deal_discount>     <deal_start><![cdata[2016-01-10 00:00:00]]></deal_start>     <deal_end><![cdata[2016-04-01 00:00:00]]></deal_end>     <deal_image>         <image>             <file>http://domain.com/site/wp-content/uploads/2015/09/c700x420.jpg</file>             <title>c700x420</title>             <caption></caption>             <description></description>             <alt></alt>         </image>         <image>             <file>http://domain.com/site/wp-content/uploads/2015/09/diploma1.jpg</file>             <title>diploma1</title>             <caption></caption>             <description></description>             <alt></alt>         </image>     </deal_image>     <deal_sales><![cdata[0]]></deal_sales>     <deal_active><![cdata[true]]></deal_active></post></data>'); $featuredde1 = $dom->getelementsbytagname('image'); foreach ($featuredde1 $node) {     $node->parentnode->removechild($node); } foreach ($featuredde1 $node) {     $node->parentnode->removechild($node); } $data = $dom->getelementsbytagname( "deal_image" ); $data ->item(0)->nodevalue = "http://domain.com/site/wp-content/uploads/2015/09/c700x420.jpg";  echo $dom->savexml(); 

demo

http://ideone.com/hlrkm4


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -