- implode: documentation ( source)
<?php
$xml = <<<XML
<DataSet>
<xs:schema id="OutDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="OutDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="BuscaSMS">
<xs:complexType>
<xs:sequence>
<xs:element name="seunum" type="xs:string" minOccurs="0" />
<xs:element name="celular" type="xs:string" minOccurs="0" />
<xs:element name="mensagem" type="xs:string" minOccurs="0" />
<xs:element name="status" type="xs:string" minOccurs="0" />
<xs:element name="datarec" type="xs:dateTime" minOccurs="0" />
<xs:element name="dataenv" type="xs:dateTime" minOccurs="0" />
<xs:element name="datastatus" type="xs:dateTime" minOccurs="0" />
<xs:element name="op" type="xs:short" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<OutDataSet xmlns="">
<BuscaSMS diffgr:id="BuscaSMS0" msdata:rowOrder="3">
<seunum>999999999</seunum>
<celular>9999999999</celular>
<mensagem>obrigado</mensagem>
<status>MO</status>
<datarec>2018-02-01T13:30:51.547-02:00</datarec>
<dataenv>2018-02-01T13:30:52.773-02:00</dataenv>
<datastatus>2018-02-01T13:30:52.773-02:00</datastatus>
<op>5</op>
</BuscaSMS>
<BuscaSMS diffgr:id="BuscaSMS1" msdata:rowOrder="4">
<seunum>99999999999</seunum>
<celular>9999999999</celular>
<mensagem>Obrigado.</mensagem>
<status>MO</status>
<datarec>2018-02-01T13:37:17.18-02:00</datarec>
<dataenv>2018-02-01T13:37:20.807-02:00</dataenv>
<datastatus>2018-02-01T13:37:20.807-02:00</datastatus>
<op>5</op>
</BuscaSMS>
</OutDataSet>
</diffgr:diffgram>
</DataSet>
XML;
$dom = new \DOMDocument();
$dom->loadXML($xml);
function formatNode(\DOMNode $node) : string
{
if (!$node->hasChildNodes())
{
return $node->nodeName.': '.$node->nodeValue;
}
return $node->nodeName."\n\t".formatList($node->childNodes);
}
function formatList(\DOMNodeList $list)
{
$array = [];
foreach($list as $node)
{
$array[] = formatNode($node);
}
return implode("\n" , $array);
}
echo formatNode($dom);