Avatar billede oldschool Nybegynder
30. september 2007 - 14:16 Der er 4 kommentarer

$xml_output problemer

Hej

Jeg har noget php kode som skriver et xml dokument med data fra mysql. Koden ser således ud:

$xml_output = "<?xml version=\"1.0\"?>\n";
$xml_output .= "<Config>\n";
$xml_output .= "\t<Galleries>\n";



for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){
    $row = mysql_fetch_assoc($resultID);
    $xml_output .= "\t<pic>\n";
$xml_output .= "\t\t<image>admin/" . $row['sti'] . "</image>\n";
$xml_output .= "\t\t<caption>" . $row['date'] . "</caption>\n";
     
    $xml_output .= "\t\t<thumbnail>admin/" . $row['thumb'] . "</thumbnail>\n"; 
    $xml_output .= "\t</pic>\n";
}


$xml_output .= "\t</Galleries>\n";
$xml_output .= "</Config>\n";

$xmlfil="images.xml";
    $writexml=fopen($xmlfil, "w+");
    fwrite($writexml, $xml_output);
    fclose($writexml);

echo $xml_output;

den fungerer rigtig fint. Men jeg har fundet et galleri som jeg gerne vil bruge, men der skulle xml'en gerne se således ud:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Config Folder="images" ThumbSize="50,50" ThumbSpacing="10,10" ThumbsRowCount="7" ThumbsToARow="3" GalleryThumbsToARow="9" DefaultGallery="1">

    <Galleries>
        <Gallery id="1" name="Gallery 1" thumb="thumbs/gallery1.jpg">
            <img thumb="gallery1/thumbs/1.jpg" src="gallery1/1.jpg" caption="Caption goes here."/>
            <img thumb="gallery1/thumbs/2.jpg" src="gallery1/2.jpg" caption="Caption goes here."/>
            <img thumb="gallery1/thumbs/3.jpg" src="gallery1/3.jpg" caption="Caption goes here."/>
        </Gallery>
    </Galleries>
</Config>

Og ligemeget hvordan jeg vender og drejer den får jeg kun fejl.

En der har styr på xml output der vil se på det?

Mvh

Oldschool
Avatar billede coderdk Praktikant
30. september 2007 - 23:57 #1
Umidddelbart ser det ok ud - Hvad får du af fejl? Kan det være at du skal smide header ud?

header("Content-Type: text/xml");

?
Avatar billede horsmark Nybegynder
02. oktober 2007 - 11:23 #2
du kan altid checke om dit xml er ok ved at importere det i simple_xml
http://dk2.php.net/simple_xml
Avatar billede oldschool Nybegynder
03. oktober 2007 - 15:44 #3
Sorry jeg har vendt sent tilbage, men har ikke været så meget ved skærmen de sidste dage.

Fik vidst formuleret mit spg forkert. Den php kode jeg postede virker helt fint, jeg ville bare have mit xml opbygget anderledes. Men jeg har fundet ud af det, det var det med \t foran eksempelvis <galleries>

Min kode endte med at se således ud:

$Folder = "admin/";
$ThumbSize = "100,75";
$ThumbSpacing = "10,10";
$ThumbsRowCount = "7";
$ThumbsToARow = "2";
$GalleryThumbsToARow = "9";
$DefaultGallery = "1";

$xml_output = "<?xml version=\"1.0\"?>\n";
$xml_output .= "<config\n";
$xml_output .= " Folder=\"" .$Folder. "\"";
$xml_output .= " ThumbSize=\"" .$ThumbSize. "\"";
$xml_output .= " ThumbSpacing=\"" .$ThumbSpacing. "\"";
$xml_output .= " ThumbsRowCount=\"" .$ThumbsRowCount. "\"";
$xml_output .= " ThumbsToARow=\"" .$ThumbsToARow. "\"";
$xml_output .= " GalleryThumbsToARow=\"" .$GalleryThumbsToARow. "\"";
$xml_output .= " DefaultGallery=\"" .$DefaultGallery. "\"";
$xml_output .= ">\n";
$xml_output .= "<galleries>\n";
$xml_output .= "<gallery>\n";


for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){
    $row = mysql_fetch_assoc($resultID);
$xml_output .= "<image";
$xml_output .= " thumb=\"" .$row['thumb']. "\"";
$xml_output .= " src=\"" .$row['sti']. "\"";
$xml_output .= " caption=\"" . $row['date'] . "\"";
$xml_output .= "/>";
}

$xml_output .= "</gallery>\n";
$xml_output .= "</galleries>\n";
$xml_output .= "</config>\n";


$xmlfil="images.xml";
    $writexml=fopen($xmlfil, "w+");
    fwrite($writexml, $xml_output);
    fclose($writexml);

echo $xml_output;

Men tak fordi i ville se på det :)
Avatar billede horsmark Nybegynder
03. oktober 2007 - 20:23 #4
okaj gør dig selv den tjeneste med denne optimering

for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){
    $row = mysql_fetch_assoc($resultID);
    .....
}

bør være...

while( $row = mysql_fetch_assoc($resultID) ){
  ...kode...
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester