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
Comments
Post a Comment