Buongiorno programamtori,
Ho un problema con il passaggio del carattere "&" da una variabile php di tipo stringa al documento xml,
queste sono le prove che ho fatto fin ora ma non hanno portato a nulla, invece della & sull' xml esce la sua codifica di carattere : &
il risultato è sempre:codice:$doc = new DOMDocument('1.0', 'utf-8'); $doc->formatOutput = true; $r = $doc->createElement("Users"); $doc->appendChild($r); $b = $doc->createElement("Users"); $UserSdio="pippo & pluto"; $UserSdio1= decode_entities( $UserSdio); $UserSdio2=htmlspecialchars_decode($UserSdio, ENT_XHTML); $UserSdio3= utf8_decode( $UserSdio); $UserSdio4=philsXMLClean($UserSdio); $UserSdio5=rawurlencode($UserSdio); $UserSdio6=urlencode($UserSdio); $UserSdio7=htmlentities($UserSdio, ENT_QUOTES); $UserSdio8=htmlentities($UserSdio, ENT_SUBSTITUTE); $UserSdio9=htmlentities($UserSdio, ENT_DISALLOWED); $UserSdio10=iconv("UTF-8", "ISO-8859-1//TRANSLIT", $UserSdio); $UserSdio11=htmlentities($UserSdio, ENT_XML1); $UserSdio12=htmlentities($UserSdio, ENT_HTML5); $UserSdio13=htmlentities($UserSdio,ENT_QUOTES, "UTF-8"); $UserSdio14=html_entity_decode($UserSdio); //$UserSdio15=_UTF8ToHTML($UserSdio); $UserSdio16=utf8_encode(html_entity_decode($UserSdio)); $UserSdio17 = html_entity_decode($UserSdio, ENT_COMPAT, 'UTF-8'); //$UserSdio18= htmlspecialchars_decode($UserSdio,ENT_COMPAT); /*var_dump(get_html_translation_table(HTML_SPECIALCHARS,ENT_QUOTES)); var_dump(htmlspecialchars('\'',ENT_QUOTES));*/ $UserSdi= $doc->createElement('UserSdi'); $UserSdi->appendChild($doc->createTextNode($UserSdio18)); //$UserSdi->appendChild($doc->createTextNode(utf8_decode($UserSdio))); $b->appendChild($UserSdi);// Aggiungo Proprietario $r->appendChild($b); $xmlfile = 'convert.xml'; $doc->save($xmlfile); function philsXMLClean($strin) { $strout = null; for ($i = 0; $i < strlen($strin); $i++) { $ord = ord($strin[$i]); if (($ord > 0 && $ord < 32) || ($ord >= 127)) { $strout .= "&#{$ord};"; } else { switch ($strin[$i]) { case '<': $strout .= '<'; break; case '>': $strout .= '>'; break; case '&': $strout .= '&'; break; case '"': $strout .= '"'; break; default: $strout .= $strin[$i]; } } } return $strout; } function decode_entities($text) { $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-1"); #NOTE: UTF-8 does not work! $text= preg_replace('/&#(\d+);/me',"chr(\\1)",$text); #decimal notation $text= preg_replace('/&#x([a-f0-9]+);/mei',"chr(0x\\1)",$text); #hex notation return $text; }
[CODE]
<?xml version="1.0" encoding="utf-8"?>
<Users>
<Users>
<UserSdi>pippo & pluto</UserSdi>
</Users>
</Users>
[/CODE}]

Rispondi quotando
