ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで配列を XML 形式に変換するための実装コード

PHP_PHP チュートリアルで配列を XML 形式に変換するための実装コード

WBOY
WBOYオリジナル
2016-07-21 15:25:521091ブラウズ

以下は、ネットワーク上の

复制代代码のとおりです:

class ArrayToXML
{
/**
* XML ドキュメントに変換するためのメイン関数。
* 多次元配列を渡すと、再帰的にループして XML ドキュメントが構築されます。
*
* @param array $data
* @param string $rootNodeName - ルートノードにしたいもの - デフォルトのデータ。
* @param SimpleXMLElement $xml - 再帰的にのみ使用する必要があります
* @return string XML
*/
public static function toXml($data, $rootNodeName = 'data', $xml= null)
{
// 互換モードをオフにしないと、単純な XML が不安定になるため、互換モードをオフにします。
if (ini_get('zend.ze1_compatibility_mode') == 1)
{
ini_set ('zend.ze1_compatibility_mode', 0);
}
if ($xml == null)
{
$xml = simplexml_load_string("<$rootNodeName />");
}
// 渡されたデータをループします。
foreach($data as $key => $value)
{
// XML には数字キーを含めないでください。
if (is_numeric($key))
{
// 文字列キーを作成します...
$key = "unknownNode_"。 (文字列) $key;
}
// 英数字以外のものを置換します
$key = preg_replace('/[^a-z]/i', '', $key);
// 別の配列が見つかった場合は再帰的にこの関数を呼び出します
if (is_array($value))
{
$node = $xml->addChild($key);
// 再帰的な電話。
ArrayToXML::toXml($value, $rootNodeName, $node);
}
else
{
// 単一ノードを追加します。
$value = htmlentities($value);
$xml->addChild($key,$value);
}
}
// 文字列として返します。必要に応じて、単純な XML オブジェクトも使用できます。
return $xml->asXML();
}
}

下は我编辑过的代码
复制代码
function arrtoxml($arr,$dom=0,$item=0){
場合 ( !$dom){
$dom = 新しい DOMDocument("1.0");
}
if(!$item){
$item = $dom->createElement("root");
$dom->appendChild($item);
}
foreach ($arr as $key=>$val){
$itemx = $dom->createElement(is_string($key)?$key:"item");
$item->appendChild($itemx);
if (!is_array($val)){
$text = $dom->createTextNode($val);
$itemx->appendChild($text);
}else {
arrtoxml($val,$dom,$itemx);
}
}
return $dom->saveXML();
}


数组转换成XML格式

复制代码代码如下:
$elementLevel = 0 ;
関数 array_Xml($array, $keys = '')
{
global $elementLevel;
if(!is_array($array))
{
if($keys == ''){
return $array;
}else{
return "n<$keys>" 。 $配列 。 "";
}
}else{
foreach ($array as $key => $value)
{
$haveTag = true;
if (is_numeric($key))
{
$key = $keys;
$haveTag = false;
}
/**
* 最初の要素
*/
if($elementLevel == 0 )
{
$startElement = "<$key>";
$endElement = "";
}
$text .= $startElement."n";
/**
*その他の要素
*/
if(!$haveTag)
{
$elementLevel++;
$text .= "<$key>" 。 array_Xml($value, $key)。 "n";
}else{
$elementLevel++;
$text .= array_Xml($value, $key);
}
$text .= $endElement."n";
}
}
$text を返す;
}
?>


関数数説明及び例子

复制代码代码如下:
$array = array(
"従業員" => array(
"従業員" => array(
array(
"name" => "名前 1",
"position" => "ポジション 1"
),
array(
"name" => "名前 2",
"position" => "位置 2"
),
array(
"name" => "名前 3",
"位置" => "位置 3"
)
)
)
);
エコー array_Xml($array);
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/324027.html技術記事以下はインターネットからのコピーコードです: class ArrayToXML { /** * XML ドキュメントに変換するためのメイン関数 * 多次元配列を渡し、これを再帰的に...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。