PHP kullanarak DOM, XML PostgreSQL Sorgu Sonuçları Dönüşümü

1 Cevap php

Bir girdi olarak SQL göz önüne alındığında, ben bir PostgreSQL veritabanını sorgulamak ve XML olarak sonuçları dönmek zorunda. Ben Aşağıdaki kod ile bu yapmış:

<?php

$link = "host=localhost dbname=company user=pgsql password=password";
$connect = pg_connect($link);

$query = "SELECT *  FROM customer";
$result = pg_query($connect, $query);

$doc = new DomDocument("1.0");

$root = $doc->createElement('data');
$root = $doc->appendChild($root);

while($row = pg_fetch_assoc($result)){
    $node = $doc->createElement('collection');
    $node = $root->appendChild($node);

    foreach($row as $fieldname => $fieldvalue){
       $node->appendChild($doc->createElement($fieldname, $fieldvalue));
    }
}

$doc->save("cust.xml");

?>

Sonunda, XML belgesine doğrudan bir CSS stil uygulamak olacaktır. Ben her 'toplama' düğüm stil bilgilerini belirleyecektir. Ancak, orada koleksiyonları alt koleksiyonları olacak ve böylece hatta alt-alt koleksiyonları ve olasıdır.

(Yani: Usta, detay, alt-detay, alt-alt-detay, vb)

Sorun benim kod yalnızca Asil, detay, alt ayrıntı için XML oluşturmak erecek. Oluşturulan XML daima verilerinin tüm seviyeleri "yakalamak" olacak böylece nasıl kodunu değiştirebilirsiniz?

Teşekkürler ...


Evet, ben bir hiyerarşik ilişki bahsediyorum. Örneğin, benim geçerli kod ile, ben "Müşteri" tablosundaki alanların tüm niteliklerini, görebilirsiniz. Ancak, ne müşteri niteliklerinden biri 'Adres', ve Müşteri birden fazla adres olsaydı? Bu gibi görünmesi gerekir ...

 <data> 
   <collection> 
     <fname>Joe</fname> 
     <lname>Smith</lname> 
     <address> 
       <address A> 123...</address A> 
       <address B> 234...</address B> 
   </collection>
 </data>

Ben adres, nitelik rağmen, alt özelliklerini sahip olduğu gerçeğine "pick up" kodumu değiştirmeye çalışıyorum ...

1 Cevap

Öncelikle, mevcut yerleşik functions kullanarak Postgres kendisi içinde xml eşleme performans düşünebilirsiniz. Bu iki faydaları veri soyutlama işlevselliği bir arada ve Postregs çok daha iyi php daha verimli bu görevi gerçekleştirmek için optimize edilmiştir kalmasını vardır. Eğer xml herhangi bir yüksek düzeyde değişiklik yapmak varsa, xslt hile yapmak gerekir.

Eğer söz soruna gelince, ben bir hiyerarşik ilişkiye sahip tablodaki verilere bahsediyorsan eğer emin değilim?