使用PHP连接具有相同节点名的节点值

How to join node value which have same node name with PHP? My output:

<SHOP> 
 <SHOPITEM>
  <title>BERMUDY FRANKLIN</title>
  <text>6skladem 3 kusů</text>
  <text>7skladem 8 kusů</text>
  <text>22skladem 33 kusů</text>     
  <unit>0</unit>
 </SHOPITEM>
 <SHOPITEM>
  <title>FRANKLIN 14221</title>
  <text>6skladem 3 kusů</text>
  <text>7skladem 8 kusů</text>    
  <unit>0</unit>
 </SHOPITEM>
</SHOP>

And i wish this:

<SHOP> 
 <SHOPITEM>
  <title>BERMUDY FRANKLIN</title>
  <text>6skladem 3 kusů<br>7skladem 8 kusů<br>22skladem 33 kusů</text>    
  <unit>0</unit>
 </SHOPITEM>
 <SHOPITEM>
  <title>FRANKLIN 14221</title>
  <text>6skladem 3 kusů<br>7skladem 8 kusů</text>  
  <unit>0</unit>
 </SHOPITEM>
</SHOP>

How improve this code which do first block of code? I am totaly lost..thx:

foreach ($items as $item) 
{
    $pieces        = $item->getElementsByTagName("STOREPIECES");
    $sizename      = $item->getElementsByTagName("SIZENAME"); 
    $sizenamevalue = $sizename->item(0)->nodeValue; 
    $piecesvalue   = $pieces->item(0)->nodeValue; 
    $query         = $xpath->query('DESCRIPTION', $item);
    $text          = $query->nodeValue .= $sizenamevalue . 'stock ' . $piecesvalue . ' pc'; 
    $node          = $dom->createElement("text", "$text");
    $item->parentNode->parentNode->appendChild($node);
}

You can use this XSLT template:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" encoding="utf-8" />

<xsl:template match="@*|node()">
<xsl:copy>
  <xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>

<xsl:template match="/SHOP/SHOPITEM">
  <xsl:element name="SHOPITEM">
    <title><xsl:value-of select="title" /></title>
    <unit><xsl:value-of select="unit" /></unit>
    <text>
      <xsl:call-template name="join">
        <xsl:with-param name="list" select="text" />
      </xsl:call-template>
    </text>
  </xsl:element>
</xsl:template>

<xsl:template name="join">
  <xsl:param name="list" />
  <xsl:for-each select="$list">
    <xsl:value-of select="." />
    <xsl:if test="position() != last()">
      <br />
    </xsl:if>
  </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

Usage:

$xsl_doc = new DOMDocument;
$xsl_doc->loadXML($xsl);

$xml_doc = new DOMDocument;
$xml_doc->loadXML($xml);

$xslt = new XSLTProcessor();
$xslt->importStyleSheet($xsl_doc);

$new_xml_doc = $xslt->transformToDoc($xml_doc);

echo $new_xml_doc->saveXML();

Depending on how you have the xml string formed (with at the end of each line or not) you can do

xml_string.replace('</text><text>', '<br>');

If you have a between lines it should be

xml_string.replace('</text>
<text>', '<br>');

This maybe isn't the most elegant solution, but it should work easily