kaktusy/modules/hipay/mapi/mapi_xml.php

72 lines
2.1 KiB
PHP

<?php
class HIPAY_MAPI_XML {
/**
* Cré le flux XML de cet objet.
* Les membres commençants par "_" sont ignorées
*
* @param int $t
* @return string
*/
public function getXML($t=0,$noshow=true) {
$xml='';
$xml.=str_repeat(chr(9),$t)."<".get_class($this).">\n";
foreach($this as $name=>$value) {
if ($noshow && substr($name,0,1)=='_')
continue;
if (!is_array($this->$name) && !is_object($this->$name) && !is_bool($this->$name)) {
$xml.=str_repeat(chr(9),$t+1)."<$name>$value</$name>\n";
} else if (is_bool($this->$name)) {
if ($value===true)
$xml.=str_repeat(chr(9),$t+1)."<$name>true</$name>\n";
else
$xml.=str_repeat(chr(9),$t+1)."<$name>false</$name>\n";
} else if (is_object($this->$name) && method_exists($this->$name,'getXML')) {
$xml.=$this->$name->getXml($t+1);
} else if (is_array($this->$name)) {
$xml.=str_repeat(chr(9),$t+1)."<$name>\n";
$xml.=self::getXMLArray($this->$name,$t+1,$noshow);
$xml.=str_repeat(chr(9),$t+1)."</$name>\n";
}
// else : no getXML method available
}
$xml.=str_repeat(chr(9),$t)."</".get_class($this).">\n";
return $xml;
}
/**
* Cré le flux XML d'un tableau
*
* @param array $array
* @param int $t
* @return string
*/
protected function getXMLArray($array,$t=0,$noshow=true) {
$xml='';
foreach($array as $name=>$value) {
if (substr($name,0,1)=='_')
continue;
if (!is_array($array[$name]) && !is_object($array[$name]) && !is_bool($array[$name])) {
$xml.=str_repeat(chr(9),$t+1)."<_aKey_$name>$value</_aKey_$name>\n";
} else if (is_bool($array[$name])) {
if ($value===true)
$xml.=str_repeat(chr(9),$t+1)."<$name>true</$name>\n";
else
$xml.=str_repeat(chr(9),$t+1)."<$name>false</$name>\n";
} else if (is_object($array[$name]) && method_exists($array[$name],'getXML')) {
$xml.=$array[$name]->getXml($t+1);
} else if (is_array($array[$name])){
$xml.=str_repeat(chr(9),$t+1)."<$name>\n";
$xml.=self::getXMLArray($array[$name],$t+1,$noshow);
$xml.=str_repeat(chr(9),$t+1)."</$name>\n";
}
}
return $xml;
}
}
?>