How to convert string to xml in php

    Table of contents
  • Php string to xml [duplicate]
  • Simplexml_load_string
  • SimpleXMLElement::__toString
  • Array to XML Conversion and XML to Array Convert in PHP
  • Convert XML to Object in PHP and again convert that Object to XML? [duplicate]
  • How to convert XML into array in PHP?
  • How to Convert XML data into JSON using PHP ?
  • Roy Tutorials

Php string to xml [duplicate]

<?php
$a = "I love things & stuffë";
$b = htmlspecialchars($a);
$c = htmlentities($a);
echo "$b\n$c\n";
I love things &amp; stuffë
I love things &amp; stuff&Atilde;&laquo;
$text = "I'm using php v5.3. I would like to convert a string to valid xml. Xml apparently requires '&' characters to be encoded to &amp; but all functions I can find which do this also convert characters like 'ë' to html entities xml doesn't accept (&euml; in this case). What function should I use?";

$doc = new DOMDocument();
echo $doc->saveXML($doc->createTextNode($text));
$str = preg_replace('/\s&\s/', '&amp', $str);
$encoded_str = str_replace('&','&amp;',$original_str);
$encoded_str = str_replace('&','&amp;',str_replace('&amp;','&',$original_str));

Simplexml_load_string

SimpleXMLElement Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

SimpleXMLElement::__toString

1 3

Array to XML Conversion and XML to Array Convert in PHP

$array = array(
    'class'=> 'class 10th',
    'student'=> array(
      '0' => array(
        'name' 		=> 'David',
        'rollNo'		=> '34'
      ),
      '1' => array(
        'name' 		=> 'Sunny',
        'rollNo'		=> '30'
      ),
      '2' => array(
        'name' 		=> 'Illa',
        'rollNo'		=> '37'
      ),
      '3' => array(
        'name' 		=> 'Monna',
        'rollNo'		=> '35'
      )
    )
  );
function generateXML($data) {
    $title = $data['class'];
    $rowCount = count($data['student']);
    
    //create the xml document
    $xmlDoc = new DOMDocument();
    
    $root = $xmlDoc->appendChild($xmlDoc->createElement("student_info"));
    $root->appendChild($xmlDoc->createElement("title",$title));
    $root->appendChild($xmlDoc->createElement("totalRows",$rowCount));
    $tabUsers = $root->appendChild($xmlDoc->createElement('rows'));
    
    foreach($data['student'] as $user){
        if(!empty($user)){
            $tabUser = $tabUsers->appendChild($xmlDoc->createElement('student'));
            foreach($user as $key=>$val){
                $tabUser->appendChild($xmlDoc->createElement($key, $val));
            }
        }
    }
    
    header("Content-Type: text/plain");
    
    //make the output pretty
    $xmlDoc->formatOutput = true;
    
    //save xml file
    $file_name = str_replace(' ', '_',$title).'.xml';
    $xmlDoc->save($file_name);
    
    //return xml file name
    return $file_name;
}
<?php


function generateXML($data) {
    $title = $data['class'];
    $rowCount = count($data['student']);
    
    //create the xml document
    $xmlDoc = new DOMDocument();
    
    $root = $xmlDoc->appendChild($xmlDoc->createElement("student_info"));
    $root->appendChild($xmlDoc->createElement("title",$title));
    $root->appendChild($xmlDoc->createElement("totalRows",$rowCount));
    $tabUsers = $root->appendChild($xmlDoc->createElement('rows'));
    
    foreach($data['student'] as $user){
        if(!empty($user)){
            $tabUser = $tabUsers->appendChild($xmlDoc->createElement('student'));
            foreach($user as $key=>$val){
                $tabUser->appendChild($xmlDoc->createElement($key, $val));
            }
        }
    }
    
    header("Content-Type: text/plain");
    
    //make the output pretty
    $xmlDoc->formatOutput = true;
    
    //save xml file
    $file_name = str_replace(' ', '_',$title).'.xml';
    $xmlDoc->save($file_name);
    
    //return xml file name
    return $file_name;
}


// array 
$array = array(
    'class'=> 'class 10th',
    'student'=> array(
      '0' => array(
        'name' 		=> 'David',
        'rollNo'		=> '34'
      ),
      '1' => array(
        'name' 		=> 'Sunny',
        'rollNo'		=> '30'
      ),
      '2' => array(
        'name' 		=> 'Illa',
        'rollNo'		=> '37'
      ),
      '3' => array(
        'name' 		=> 'Monna',
        'rollNo'		=> '35'
      )
    )
  );

  generateXML($array);
?>
<?xml version="1.0"?>
<student_info>
  <title>class 10th</title>
  <totalRows>4</totalRows>
  <rows>
    <student>
      <name>David</name>
      <rollNo>34</rollNo>
    </student>
    <student>
      <name>Sunny</name>
      <rollNo>30</rollNo>
    </student>
    <student>
      <name>Illa</name>
      <rollNo>37</rollNo>
    </student>
    <student>
      <name>Monna</name>
      <rollNo>35</rollNo>
    </student>
  </rows>
</student_info>
<?php

function xml_to_array(){
    //xml file path
    $path = "class_10th.xml";

    //read entire file into string
    $xmlfile = file_get_contents($path);

    //convert xml string into an object
    $xml = simplexml_load_string($xmlfile);

    //convert into json
    $json  = json_encode($xml);

    //convert into associative array
    $array_data = json_decode($json, true);
    
    print_r($array_data);
}
xml_to_array();
?>
Array
(
    [title] => class 10th
    [totalRows] => 4
    [rows] => Array
        (
            [student] => Array
                (
                    [0] => Array
                        (
                            [name] => David
                            [rollNo] => 34
                        )

                    [1] => Array
                        (
                            [name] => Sunny
                            [rollNo] => 30
                        )

                    [2] => Array
                        (
                            [name] => Illa
                            [rollNo] => 37
                        )

                    [3] => Array
                        (
                            [name] => Monna
                            [rollNo] => 35
                        )

                )

        )

)

Convert XML to Object in PHP and again convert that Object to XML? [duplicate]

$xml = '<?xml version="1.0"?>
<step number="9">
  <s_name>test</s_name>
  <b_sel>12345</b_sel>
  <b_ind>7</b_ind>
</step>';
$xml = json_decode(json_encode((array) simplexml_load_string($xml)), 1);

$stepInformation = stdClass Object
(
    [@attributes] => Array
        (
            [number] => 9
        )

    [s_name] => test
    [b_sel] => 12345
    [b_ind] => 7
)
function convertStepInformationToArray($stepInformation)
{
     $dom = new DOMDocument();
    $stepInfo = "{$stepInformation->s_name}{$stepInformation->b_sel}{$stepInformation->b_ind}";    
$dom->loadXML("<document>" . $stepInfo . "</document>");
    $domx = new DOMXPath($dom);
    $entries = $domx->evaluate("//step");
    return $entries;
}
DOMNodeList Object
(
    [length] => 0
)
stdClass Object
    (
        [@attributes] => Array
            (
                [number] => 9
            )
$xml = simplexml_load_string($xml);

$stepInformation = SimpleXMLElement Object
        (
            [@attributes] => Array
            (
                [number] => 9
            )

        [s_name] => test
        [b_sel] => 12345
        [b_ind] => 7
)
   DOMNodeList Object
    (
        [length] => 1
    )
$xml = '<?xml version="1.0"?>
<step number="9">
  <s_name>test</s_name>
  <b_sel>12345</b_sel>
  <b_ind>7</b_ind>
</step>';

$xml = simplexml_load_string($xml);

$step = $xml->xpath('//step');

echo $step[0]->attributes()->number; // 9

echo $xml->s_name, '<br/>', $xml->s_name, '<br/>', $xml->b_ind;
$dom = new DOMDocument;
$dom->loadXML($xml);
$xpath = new DOMXpath($dom);

echo $xpath->evaluate('string(//step/@number)');
$xml = '<?xml version="1.0"?>
<step number="9">
    <s_name>test</s_name>
    <b_sel>12345</b_sel>
    <b_ind>7</b_ind>
</step>';

function convertStepInformationToArray($stepInformation) {
    $dom = new DOMDocument();
    $dom->loadXML($stepInformation);
    $domx = new DOMXPath($dom);
    $entries = $domx->evaluate("//step");
    return $entries;
}

print_r(convertStepInformationToArray($xml));

How to convert XML into array in PHP?

<aaaa Version="1.0">
   <bbb>
     <cccc>
       <dddd Id="id:pass" />
       <eeee name="hearaman" age="24" />
     </cccc>
   </bbb>
</aaaa>
$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
$xml = new SimpleXMLElement($xmlString);
echo $xml->bbb->cccc->dddd['Id'];
echo $xml->bbb->cccc->eeee['name'];
// or...........
foreach ($xml->bbb->cccc as $element) {
  foreach($element as $key => $val) {
   echo "{$key}: {$val}";
  }
}
function XML2Array(SimpleXMLElement $parent)
{
    $array = array();

    foreach ($parent as $name => $element) {
        ($node = & $array[$name])
            && (1 === count($node) ? $node = array($node) : 1)
            && $node = & $node[];

        $node = $element->count() ? XML2Array($element) : trim($element);
    }

    return $array;
}

$xml   = simplexml_load_string($buffer);
$array = XML2Array($xml);
$array = array($xml->getName() => $array);
Array
(
    [aaaa] => Array
        (
            [bbb] => Array
                (
                    [cccc] => Array
                        (
                            [dddd] => 
                            [eeee] => 
                        )

                )

        )

)
$xml   = simplexml_load_string($buffer);
$array = json_decode(json_encode((array) $xml), true);
$array = array($xml->getName() => $array);
Array
(
    [aaaa] => Array
        (
            [@attributes] => Array
                (
                    [Version] => 1.0
                )

            [bbb] => Array
                (
                    [cccc] => Array
                        (
                            [dddd] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [Id] => id:pass
                                        )

                                )

                            [eeee] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => hearaman
                                            [age] => 24
                                        )

                                )

                        )

                )

        )

)
$array = json_decode(json_encode((array)simplexml_load_string($xml)),true);
$xml = '<container><element attribute="123">abcd</element></container>';
print_r(json_decode(json_encode(simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA)),1));

Array
(
    [element] => abcd
)
function XMLtoArray($xml) {
    $previous_value = libxml_use_internal_errors(true);
    $dom = new DOMDocument('1.0', 'UTF-8');
    $dom->preserveWhiteSpace = false; 
    $dom->loadXml($xml);
    libxml_use_internal_errors($previous_value);
    if (libxml_get_errors()) {
        return [];
    }
    return DOMtoArray($dom);
}

function DOMtoArray($root) {
    $result = array();

    if ($root->hasAttributes()) {
        $attrs = $root->attributes;
        foreach ($attrs as $attr) {
            $result['@attributes'][$attr->name] = $attr->value;
        }
    }

    if ($root->hasChildNodes()) {
        $children = $root->childNodes;
        if ($children->length == 1) {
            $child = $children->item(0);
            if (in_array($child->nodeType,[XML_TEXT_NODE,XML_CDATA_SECTION_NODE])) {
                $result['_value'] = $child->nodeValue;
                return count($result) == 1
                    ? $result['_value']
                    : $result;
            }

        }
        $groups = array();
        foreach ($children as $child) {
            if (!isset($result[$child->nodeName])) {
                $result[$child->nodeName] = DOMtoArray($child);
            } else {
                if (!isset($groups[$child->nodeName])) {
                    $result[$child->nodeName] = array($result[$child->nodeName]);
                    $groups[$child->nodeName] = 1;
                }
                $result[$child->nodeName][] = DOMtoArray($child);
            }
        }
    }
    return $result;
}

$xml = '
    <aaaa Version="1.0">
       <bbb>
         <cccc>
           <dddd id="123" />
           <eeee name="john" age="24" />
           <ffff type="employee">Supervisor</ffff>
         </cccc>
       </bbb>
    </aaaa>
';
print_r(XMLtoArray($xml));

Array
(
    [aaaa] => Array
        (
            [@attributes] => Array
                (
                    [Version] => 1.0
                )

            [bbb] => Array
                (
                    [cccc] => Array
                        (
                            [dddd] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [id] => 123
                                        )

                                )

                            [eeee] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => john
                                            [age] => 24
                                        )

                                )

                            [ffff] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [type] => employee
                                        )

                                    [_value] => Supervisor
                                )

                        )

                )

        )

)
<?php
/**
  * convert xml string to php array - useful to get a serializable value
  *
  * @param string $xmlstr
  * @return array
  *
  * @author Adrien aka Gaarf & contributors
  * @see http://gaarf.info/2009/08/13/xml-string-to-php-array/
*/
function xmlstr_to_array($xmlstr) {
  $doc = new DOMDocument();
  $doc->loadXML($xmlstr);
  $root = $doc->documentElement;
  $output = domnode_to_array($root);
  $output['@root'] = $root->tagName;
  return $output;
}
function domnode_to_array($node) {
  $output = array();
  switch ($node->nodeType) {
    case XML_CDATA_SECTION_NODE:
    case XML_TEXT_NODE:
      $output = trim($node->textContent);
    break;
    case XML_ELEMENT_NODE:
      for ($i=0, $m=$node->childNodes->length; $i<$m; $i++) {
        $child = $node->childNodes->item($i);
        $v = domnode_to_array($child);
        if(isset($child->tagName)) {
          $t = $child->tagName;
          if(!isset($output[$t])) {
            $output[$t] = array();
          }
          $output[$t][] = $v;
        }
        elseif($v || $v === '0') {
          $output = (string) $v;
        }
      }
      if($node->attributes->length && !is_array($output)) { //Has attributes but isn't an array
        $output = array('@content'=>$output); //Change output into an array.
      }
      if(is_array($output)) {
        if($node->attributes->length) {
          $a = array();
          foreach($node->attributes as $attrName => $attrNode) {
            $a[$attrName] = (string) $attrNode->value;
          }
          $output['@attributes'] = $a;
        }
        foreach ($output as $t => $v) {
          if(is_array($v) && count($v)==1 && $t!='@attributes') {
            $output[$t] = $v[0];
          }
        }
      }
    break;
  }
  return $output;
}
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
function xml2array($contents, $get_attributes = 1, $priority = 'tag')
    {
        if (!$contents) return array();
        if (!function_exists('xml_parser_create')) {
            // print "'xml_parser_create()' function not found!";
            return array();
        }
        // Get the XML parser of PHP - PHP must have this module for the parser to work
        $parser = xml_parser_create('');
        xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); // http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss
        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
        xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
        xml_parse_into_struct($parser, trim($contents) , $xml_values);
        xml_parser_free($parser);
        if (!$xml_values) return; //Hmm...
        // Initializations
        $xml_array = array();
        $parents = array();
        $opened_tags = array();
        $arr = array();
        $current = & $xml_array; //Refference
        // Go through the tags.
        $repeated_tag_index = array(); //Multiple tags with same name will be turned into an array
        foreach($xml_values as $data) {
            unset($attributes, $value); //Remove existing values, or there will be trouble
            // This command will extract these variables into the foreach scope
            // tag(string), type(string), level(int), attributes(array).
            extract($data); //We could use the array by itself, but this cooler.
            $result = array();
            $attributes_data = array();
            if (isset($value)) {
                if ($priority == 'tag') $result = $value;
                else $result['value'] = $value; //Put the value in a assoc array if we are in the 'Attribute' mode
            }
            // Set the attributes too.
            if (isset($attributes) and $get_attributes) {
                foreach($attributes as $attr => $val) {                                   
                                    if ( $attr == 'ResStatus' ) {
                                        $current[$attr][] = $val;
                                    }
                    if ($priority == 'tag') $attributes_data[$attr] = $val;
                    else $result['attr'][$attr] = $val; //Set all the attributes in a array called 'attr'
                }
            }
            // See tag status and do the needed.
                        //echo"<br/> Type:".$type;
            if ($type == "open") { //The starting of the tag '<tag>'
                $parent[$level - 1] = & $current;
                if (!is_array($current) or (!in_array($tag, array_keys($current)))) { //Insert New tag
                    $current[$tag] = $result;
                    if ($attributes_data) $current[$tag . '_attr'] = $attributes_data;
                                        //print_r($current[$tag . '_attr']);
                    $repeated_tag_index[$tag . '_' . $level] = 1;
                    $current = & $current[$tag];
                }
                else { //There was another element with the same tag name
                    if (isset($current[$tag][0])) { //If there is a 0th element it is already an array
                        $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
                        $repeated_tag_index[$tag . '_' . $level]++;
                    }
                    else { //This section will make the value an array if multiple tags with the same name appear together
                        $current[$tag] = array(
                            $current[$tag],
                            $result
                        ); //This will combine the existing item and the new item together to make an array
                        $repeated_tag_index[$tag . '_' . $level] = 2;
                        if (isset($current[$tag . '_attr'])) { //The attribute of the last(0th) tag must be moved as well
                            $current[$tag]['0_attr'] = $current[$tag . '_attr'];
                            unset($current[$tag . '_attr']);
                        }
                    }
                    $last_item_index = $repeated_tag_index[$tag . '_' . $level] - 1;
                    $current = & $current[$tag][$last_item_index];
                }
            }
            elseif ($type == "complete") { //Tags that ends in 1 line '<tag />'
                // See if the key is already taken.
                if (!isset($current[$tag])) { //New Key
                    $current[$tag] = $result;
                    $repeated_tag_index[$tag . '_' . $level] = 1;
                    if ($priority == 'tag' and $attributes_data) $current[$tag . '_attr'] = $attributes_data;
                }
                else { //If taken, put all things inside a list(array)
                    if (isset($current[$tag][0]) and is_array($current[$tag])) { //If it is already an array...
                        // ...push the new element into that array.
                        $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
                        if ($priority == 'tag' and $get_attributes and $attributes_data) {
                            $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
                        }
                        $repeated_tag_index[$tag . '_' . $level]++;
                    }
                    else { //If it is not an array...
                        $current[$tag] = array(
                            $current[$tag],
                            $result
                        ); //...Make it an array using using the existing value and the new value
                        $repeated_tag_index[$tag . '_' . $level] = 1;
                        if ($priority == 'tag' and $get_attributes) {
                            if (isset($current[$tag . '_attr'])) { //The attribute of the last(0th) tag must be moved as well
                                $current[$tag]['0_attr'] = $current[$tag . '_attr'];
                                unset($current[$tag . '_attr']);
                            }
                            if ($attributes_data) {
                                $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
                            }
                        }
                        $repeated_tag_index[$tag . '_' . $level]++; //0 and 1 index is already taken
                    }
                }
            }
            elseif ($type == 'close') { //End of tag '</tag>'
                $current = & $parent[$level - 1];
            }
        }
        return ($xml_array);
    }
    
    // Let's call the this above function xml2array
    
    xml2array($xmlContent, $get_attributes = 3, $priority = 'tag'); // it will work 100% if not ping me @skype: sapan.mohannty
    
//  Enjoy coding
<?php
$xml = json_decode(json_encode((array)simplexml_load_string($xml)),1);
$finalItem = getChild($xml);
var_dump($finalItem);

function getChild($xml, $finalItem = []){
    foreach($xml as $key=>$value){
        if(!is_array($value)){
            $finalItem[$key] = $value;
        }else{
            $finalItem = getChild($value, $finalItem);
        }
    }
    return $finalItem;
}
?>  
$xml = new SimpleXMLElement("<your><xml><string>ok</string></xml></your>");
$array = (array)$xml;

How to Convert XML data into JSON using PHP ?

<root> 
  <child>
    <subchild> ... </subchild>
  </child>
</root>
<student>
    <details>
        <address>
            <firstname>sravan kumar</firstname>
            <city>kakumanu</city>
            <zip>522112</zip>
        </address>
    </details>

    <details>
        <address>
            <firstname>sudheer</firstname>
            <city>guntur</city>
            <zip>522112</zip>
        </address>
    </details>

    <details>
        <address>
            <firstname>radha kumar</firstname>
            <city>ponnur</city>
            <zip>456345</zip>
        </address>
    </details>

    <details>
        <address>
            <firstname>vani</firstname>
            <city>noida</city>
            <zip>456644</zip>
        </address>
    </details>
</student>
{ 
    "data1": "value1",
    "data2": "value2",
    "datan": "valuen"
}
{"details":
[{ 
    "address": { 
        "firstname": "sravan kumar", 
        "city": "kakumanu", 
        "zip": "522112" 
    }
},
{ 
    "address": { 
        "firstname": "sudheer", 
        "city": "guntur", 
        "zip": "522112" 
    } 
},
{ 
    "address": { 
        "firstname": "radha kumar", 
        "city": "ponnur", 
        "zip": "456345" 
    } 
},
{ 
    "address": { 
        "firstname": "vani", 
        "city": "noida", 
        "zip": "456644" 
    } 
}]}
{
    "details": [
        { 
            "address": { 
            "firstname": "sravan kumar", 
            "city": "kakumanu", 
            "zip": "522112" 
        }},
        { 
            "address": { 
            "firstname": "sudheer", 
            "city": "guntur", 
            "zip": "522112" 
        }},
        { "address": { 
            "firstname": "radha kumar", 
            "city": "ponnur", 
            "zip": "456345" 
        }},
        { "address": { 
            "firstname": "vani", 
            "city": "noida", 
            "zip": "456644" 
        }}
    ]
}

Roy Tutorials

function convertXmlToCsvString($xmlString) {
	$xml = simplexml_load_string($xmlString);
	
	$header = false;
	
	$csv = '';
	
	foreach($xml as $key => $value){
		if(!$header) {
			$csv .= implode(array_keys(get_object_vars($value)), ',');			
			$header = true;
		}
		$csv .= nl2br("\n");
		$csv .= implode(get_object_vars($value), ',');
	}
	
	return $csv;
}
xml_string = '<?xml version="1.0"?><policies><policy><policyID>119736</policyID><statecode>FL</statecode><county>CLAY COUNTY</county><eq_site_limit>498960</eq_site_limit><hu_site_limit>498960</hu_site_limit><fl_site_limit>498960</fl_site_limit><fr_site_limit>498960</fr_site_limit><tiv_2011>498960</tiv_2011><tiv_2012>792148.9</tiv_2012><eq_site_deductible>0</eq_site_deductible><hu_site_deductible>9979.2</hu_site_deductible><fl_site_deductible>0</fl_site_deductible><fr_site_deductible>0</fr_site_deductible><point_latitude>30.102261</point_latitude><point_longitude>-81.711777</point_longitude><line>Residential</line><construction>Masonry</construction><point_granularity>1</point_granularity></policy><policy><policyID>448094</policyID><statecode>FL</statecode><county>CLAY COUNTY</county><eq_site_limit>1322376.3</eq_site_limit><hu_site_limit>1322376.3</hu_site_limit><fl_site_limit>1322376.3</fl_site_limit><fr_site_limit>1322376.3</fr_site_limit><tiv_2011>1322376.3</tiv_2011><tiv_2012>1438163.57</tiv_2012><eq_site_deductible>0</eq_site_deductible><hu_site_deductible>0</hu_site_deductible><fl_site_deductible>0</fl_site_deductible><fr_site_deductible>0</fr_site_deductible><point_latitude>30.063936</point_latitude><point_longitude>-81.707664</point_longitude><line>Residential</line><construction>Masonry</construction><point_granularity>3</point_granularity></policy><policy><policyID>206893</policyID><statecode>FL</statecode><county>CLAY COUNTY</county><eq_site_limit>190724.4</eq_site_limit><hu_site_limit>190724.4</hu_site_limit><fl_site_limit>190724.4</fl_site_limit><fr_site_limit>190724.4</fr_site_limit><tiv_2011>190724.4</tiv_2011><tiv_2012>192476.78</tiv_2012><eq_site_deductible>0</eq_site_deductible><hu_site_deductible>0</hu_site_deductible><fl_site_deductible>0</fl_site_deductible><fr_site_deductible>0</fr_site_deductible><point_latitude>30.089579</point_latitude><point_longitude>-81.700455</point_longitude><line>Residential</line><construction>Wood</construction><point_granularity>1</point_granularity></policy><policy><policyID>333743</policyID><statecode>FL</statecode><county>CLAY COUNTY</county><eq_site_limit>0</eq_site_limit><hu_site_limit>79520.76</hu_site_limit><fl_site_limit>0</fl_site_limit><fr_site_limit>0</fr_site_limit><tiv_2011>79520.76</tiv_2011><tiv_2012>86854.48</tiv_2012><eq_site_deductible>0</eq_site_deductible><hu_site_deductible>0</hu_site_deductible><fl_site_deductible>0</fl_site_deductible><fr_site_deductible>0</fr_site_deductible><point_latitude>30.063236</point_latitude><point_longitude>-81.707703</point_longitude><line>Residential</line><construction>Wood</construction><point_granularity>3</point_granularity></policy></policies>';
$csv = convertXmlToCsvString($xml_string);
echo $csv;
function convertXmlToCsvFile($xml_file_input, $csv_file_output) {
	$xml = simplexml_load_file($xml_file_input);
	
	$output_file = fopen($csv_file_output, 'w');
	
	$header = false;
	
	foreach($xml as $key => $value){
		if(!$header) {
			fputcsv($output_file, array_keys(get_object_vars($value)));
			$header = true;
		}
		fputcsv($output_file, get_object_vars($value));
	}
	
	fclose($output_file);
}
convertXmlToCsvFile("C:\Users\soumi\Desktop\FL_insurance.xml", "C:\Users\soumi\Desktop\FL_insurance.csv");

Next Lesson PHP Tutorial

What is XML file in PHP?

XML is a data format for standardized structured document exchange. More information on XML can be found in our XML Tutorial. This extension uses the Expat XML parser. Expat is an event-based parser, it views an XML document as a series of events.

Why XML is used in PHP?

Uses of XML XML is used to settle the data and store. It can simply be merged with style sheets to create required output. It minifies the creation of a HTML document.

HOW include XML file in PHP?

How to Create an XML document using PHP.
“$dom = new DOMDocument();” creates an instance of DOMDocument class..
“$dom->encoding = 'utf-8';” sets the document encoding to utf-8..
“$dom->xmlVersion = '1.0';” specifies the version number 1.0..
“$dom->formatOutput = true;” ensures that the output is well formatted..

What is SimpleXML extension in PHP?

PHP SimpleXML Introduction SimpleXML is an extension that allows us to easily manipulate and get XML data. SimpleXML provides an easy way of getting an element's name, attributes and textual content if you know the XML document's structure or layout.