Ben böyle bir dizi var ki:
<?php
$colors=array();
$colors[0]['id']=1;
$colors[0]['color']='blue';
$colors[1]['id']=2;
$colors[1]['color']='green';
......
?>
Tüm dizi XML dönüştürülür için en kolay yolu nedir?
Some working Example for the Data in Question that is on-site: http://stackoverflow.com/a/14143759/367456
Orijinal cevap şöyle:
Bu ön tanımlı uygulamaları bir göz atın:
http://snipplr.com/view/3491/convert-php-array-to-xml-or-simple-xml-object-if-you-wish/
Ayrıca XML dizi dönüştürmek için destek niteliği istiyorsanız, bu uygulama kullanabilirsiniz: http://www.lalit.org/lab/convert-php-array-to-xml-with-attributes/
Nitelik destek için belirli bir şekilde diziyi inşa gerektirir. Özellikleri olmadan xml için doğrudan işleve herhangi bir dizi geçmek ve bir XML alabilirsiniz
Kendinizi sadece çıktılar basit bir işlevi oluşturabilirsiniz. Işlevine elemanları ile dizi geçen ve üst öğe (Belgenin kök öğesi) adını ve her öğenin adını söylüyorum örneğin.
I colors
ebeveyn ve color
her eleman için varsayalım.
Ben de adlandırılmış anahtarlar color
elemanlarının çocuğu olduğu varsayılır:
function xml_from_indexed_array($array, $parent, $name) {
echo '<?xml version="1.0"?>', "\n";
echo "<$parent>\n";
foreach ($array as $element) {
echo " <$name>\n";
foreach ($element as $child => $value) {
echo " <$child>$value</$child>\n";
}
echo " </$name>\n";
}
echo "</$parent>\n";
}
Gördüğünüz gibi, bu sadece tüm unsurları üzerinde yineleme, ileriye oldukça düz.
Kullanımı Örnek:
<?php
$colors = array();
$colors[0]['id'] = 1;
$colors[0]['color'] = 'blue';
$colors[1]['id'] = 2;
$colors[1]['color'] = 'green';
xml_from_indexed_array($colors, 'colors', 'color');
Örnek Çıktı:
<?xml version="1.0"?>
<colors>
<color>
<id>1</id>
<color>blue</color>
</color>
<color>
<id>2</id>
<color>green</color>
</color>
</colors>
Eğer daha derin iç içe daha gelişmiş dizi yapılarının varsa, tekrarlamalı bir şekilde bu çözmek isteyebilirsiniz. Bazı ilgili sorular: