Oprettet søn. d. 30. september 2007 kl. 14:16:12

oldschool
oldschool (18.559 point. Point ude: 505)

$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

Skrevet søn. d. 30. september 2007 kl. 23:57:22| #1

coderdk
coderdk (160.399 point)
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");

?

Skrevet tir. d. 02. oktober 2007 kl. 11:23:56| #2

horsmark
horsmark (32.593 point)
www.horsmark.com
du kan altid checke om dit xml er ok ved at importere det i simple_xml
http://dk2.php.net/ (...)

Skrevet ons. d. 03. oktober 2007 kl. 15:44:27| #3

oldschool
oldschool (18.559 point)
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 :)

Skrevet ons. d. 03. oktober 2007 kl. 20:23:23| #4

horsmark
horsmark (32.593 point)
www.horsmark.com
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...
}

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger