[PHP 5/libxslt] Inconsistentie in XSL transformaties

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Voor mijn weblog gebruik ik XSLT als templating engine. Nu zie ik echter een vreemde inconsistentie waarvan ik de oorzaak niet snap. Ligt waarschijnlijk ergens in libxslt (dat gebruikt wordt door de XSL transformatie-shizzle in PHP 5), maar misschien heeft iemand een clue wat het probleem is?

Zie het verschil tussen deze pagina (XML) en deze pagina (XML). Het viel me op dat er tussen de "tags" op de ene pagina wel een spatie zit en op de andere niet. Dit komt doordat de onderliggende XHTML er heel anders uitziet. Ik snap echter totaal niet hoe dat kan! Dezelfde XSL-sheet wordt gebruikt, dezelfde code zorgt voor de transformatie... Wat is er anders?

Rustacean


Acties:
  • 0 Henk 'm!

  • yiko
  • Registratie: September 2003
  • Laatst online: 20-04 20:19
Zit er een verschil in de versie van de geïnstalleerde libxml2/libxstl libraries ?

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Ehm, nee? Is allemaal dezelfde PHP op dezelfde server.

Rustacean


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Helemaal niemand die hier iets over kan zeggen?

Rustacean


Acties:
  • 0 Henk 'm!

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Manuzhai schreef op vrijdag 11 augustus 2006 @ 13:19:
Voor mijn weblog gebruik ik XSLT als templating engine. Nu zie ik echter een vreemde inconsistentie waarvan ik de oorzaak niet snap. Ligt waarschijnlijk ergens in libxslt (dat gebruikt wordt door de XSL transformatie-shizzle in PHP 5), maar misschien heeft iemand een clue wat het probleem is?

Zie het verschil tussen deze pagina (XML) en deze pagina (XML). Het viel me op dat er tussen de "tags" op de ene pagina wel een spatie zit en op de andere niet. Dit komt doordat de onderliggende XHTML er heel anders uitziet. Ik snap echter totaal niet hoe dat kan! Dezelfde XSL-sheet wordt gebruikt, dezelfde code zorgt voor de transformatie... Wat is er anders?
Kan aan mij liggen zo in de vroege ochtend, maar ik snap je probleem misschien niet geheel. Het enige dat ik zie is dat er bij de ene pagina wel consistent een whitespace volgt na een tag, maar bij de andere niet, en dat dat ook al zo is in de xml. Is dat je vraag?

[ Voor 0% gewijzigd door prototype op 14-08-2006 09:27 . Reden: morgen->ochtend, 'k ben nog niet helemaal wakker... :+ ]


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Als je kijkt naar de <category term="" /> tags in de XML zie je dat die hetzelfde zijn geformat, allebei gewoon achter elkaar door zonder whitespace ertussen. In de XHTML echter staan ze bij de ene pagina allemaal op een eigen regel, maar bij de andere pagina staan ze allemaal achter elkaar! (Je kunt ze daar vinden met <a href="/weblog/tag/*/">*</a>.) Hetzelfde geldt voor <ul id="nav">, dat niet eens uit de XML komt maar direct in de XSLT is opgenomen...

Rustacean


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Ik ben zojuist tot de conclusie gekomen dat dit probleem weggaat als ik uit mijn XML source de tabs (\t) en de newlines (\n) weghaal. Kennelijk gebruikt libxslt of libxml een soort metriek die reformat als er weinig (maar niet noodzakelijk geen) formatting inzit en de formatting intact laat als die er wel is.

Rustacean

Pagina: 1