Kom ihåg mig?
Home Menu

Menu


Indentering av XML

Ämnesverktyg Visningsalternativ
Oläst 2007-09-14, 18:29 #1
goober goober är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 24
goober goober är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 24
Hej.
Jag har gjort en (php)-klass som har till uppgift att agera modell för en xml-fil där min data är lagrad. Klassen kan lägga till / ändra och ta bort data från xml-filen samt hämta värden därifrån.

För att lägga in ny data till filen skapar jag en ny trädstruktur med hjälp av phps DOM klasser (se http://se.php.net/manual/en/ref.dom.php ) för att sedan lägga till det på rätt plats i filen. Allt fungerar korrekt utom att allting hamnar på samma rad, vilket är väldigt irriterande om jag tex vill editera xml-filen manuellt.

Finns det något bra sätt att få till att åtminstone varje element hamnar på en ny rad?

Tack på förhand
Mathias
goober är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-14, 19:27 #2
stakess avatar
stakes stakes är inte uppkopplad
Medlem
 
Reg.datum: May 2005
Inlägg: 219
stakes stakes är inte uppkopplad
Medlem
stakess avatar
 
Reg.datum: May 2005
Inlägg: 219
\n New Line
\t Tab
\r Carriage Return

i php koden där du genererar xml:en

eller är jag inne på fel spår? :P
stakes är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-14, 20:52 #3
goober goober är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 24
goober goober är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 24
Tack men det var något av det första jag testade utan tillfredsställande resultat.

Exempelkod på hur jag skapar och lägger in data:

Kod:
$newOB = $this->getElementById($id);
$newPercent = $this->createElement('percent');
$newPercent->appendChild($this->createTextNode($percent));
//Merge into the file
$newOB->appendChild($newWeekdays);
goober är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-14, 20:54 #4
patjoh patjoh är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2006
Inlägg: 26
patjoh patjoh är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2006
Inlägg: 26
Instansvariabeln formatOutput för DOMDocumentet är som standard satt till false. Om du sätter den till true borde det se bättre ut.
patjoh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-14, 21:12 #5
goober goober är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 24
goober goober är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 24
Tackar patjoh, det ledde mig in på rätt spår, men jag var även tvungen att lägga in

$this->preserveWhiteSpace = FALSE; Innan jag laddade in min xmlfil med $this->load($document).

Så om det är någon annan som har problem med detta i framtiden så fungerar det med följande kodsnutt:

Kod:
$this->preserveWhiteSpace = FALSE;
$this->load($document);
$this->formatOutput = TRUE;
goober är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:53.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017