IPB     Il futuro di Tevac dipende da te!  

Benvenuto Visitatore ( Log In | Registrati )

  · · · · · · · · · · · ·
Reply to this topicStart new topic
> PHP/XML/XSLT: strana trasformazione
Gianni Valenti
messaggio 7 Feb 2006, 00:25
Messaggio #1


Level 3/11
***

Gruppo: Forum User +
Messaggi: 246
Iscritto il: 29-June 04
Da: Pisa
Utente Nr.: 2.070



Ciao a tutti,
mi sto cimentando per la prima volta con pagine php che caricano un sorgente xml e lo trasformano attraverso un foglio di stile xsl e devo dire che la cosa mi diverte abbastanza.

Mi succede però una cosa strana: il php nella trasformazione mi inserisce un attributo xmlns="" dentro i tag <ul> e non capisco perché. Potete darci un'occhiata?

File xml:
CODICE
<?xml version="1.0" encoding="UTF-8"?>

<pagina>

<titolo>Titolo della pagina</titolo>

<menu>

    <item link="#">Elemento 1</item>

    <item link="#">Elemento 2</item>

    <item link="#">Elemento 3</item>

</menu>

</pagina>


File xsl:
CODICE
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>



<xsl:template match="/">



<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

<title><xsl:value-of select="/pagina/titolo" /></title>

</head>



<body>



<xsl:apply-templates select="/pagina/menu" />



</body>

</html>



</xsl:template>







<xsl:template match="menu">

<ul>

<xsl:apply-templates />

</ul>

</xsl:template>







<xsl:template match="item">

<li><a href="{@link}"><xsl:value-of select="text()" /></a></li>

</xsl:template>



</xsl:stylesheet>


File php:
CODICE
<?php

$xsl = new XSLTProcessor();

$xsl->importStyleSheet(DOMDocument::load("style.xsl"));

echo $xsl->transformToXML(DOMDocument::load("source.xml"));

?>


Output del file php:
CODICE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Titolo della pagina</title></head><body><ul xmlns="">

    <li><a href="#">Elemento 1</a></li>

    <li><a href="#">Elemento 2</a></li>

    <li><a href="#">Elemento 3</a></li>

</ul></body></html>


Non capisco il perché di quel <ul xmlns="">...

Voi mi sapete dire perché?

Grazie icon_smile.gif

Gianni


--------------------
Hey! Ho un blog!
Go to the top of the page
 
+Quote Post
azael
messaggio 7 Feb 2006, 13:00
Messaggio #2


Level 8/11
********

Gruppo: Forum User
Messaggi: 3.123
Iscritto il: 2-February 04
Da: Bergamo
Utente Nr.: 1.423



Nel caso particolare nonso risponderti, ma so (per esperienza) che PHP alle volte fa cose del genere: per esempio se si usano le sessioni e il client non accetta i cookies inserisce nei form un elemento input hidden che riporta il SID della sessione... ovviamente non inserendolo nel posto giusto si incrocchia tutto nella validazione delle pagine W3C...

In questo caso non so cosa dirti: e' probabile che ci sia sotto qualcosa del genere. Nel mio caso avevo trovato un'opzione da inserire all'inizio dello script che inibiva l'inserimento di questi hidden... non so se esiste qualcosa di equivalente nel tuo caso.

BTW penso che il pirmo passo sia quello di capire perche' aggiunge quel pezzo... c'e' un qualche problema di standard? Informazioni necessarie che hai omesso?

Ciao,

Roberto


--------------------
Azael's New: ho aperto il mio blog ... visitatelo!!!
Supporta Tevac
Go to the top of the page
 
+Quote Post
Fed3rico
messaggio 7 Feb 2006, 14:12
Messaggio #3


FED3RICO
******

Gruppo: Supporter
Messaggi: 1.830
Iscritto il: 3-July 04
Da: Tamara
Utente Nr.: 2.082



CITAZIONE(azael)
Nel caso particolare nonso risponderti, ma so (per esperienza) che PHP alle volte fa cose del genere: per esempio se si usano le sessioni e il client non accetta i cookies inserisce nei form un elemento input hidden che riporta il SID della sessione...


No vabè dai, povero PHP icon_biggrin.gif Questa è una cosa diversa icon_smile.gif

Qui in realtà è normale che appaia l'attributo xmlns vuoto perché manca un namespace predefinito nel foglio di stile.

Bisogna cambiare l'elemento xsl:stylesheet così:

CODICE
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" >


o in alternativa bisogna aggiungere l'attributo xmlns anche in UL e poi in LI.


--------------------
iPhone è un troll.
Go to the top of the page
 
+Quote Post
Gianni Valenti
messaggio 7 Feb 2006, 17:35
Messaggio #4


Level 3/11
***

Gruppo: Forum User +
Messaggi: 246
Iscritto il: 29-June 04
Da: Pisa
Utente Nr.: 2.070



Fichissimo! icon_biggrin.gif

Funziona.


--------------------
Hey! Ho un blog!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 

Collapse

> 

    Titolo discussione Risposte Autore discussione Visite Ultima azione
No new   11 nickXXX 209 21 June 2008 - 00:05
Ultimo messaggio di: poweruser
No new   18 jago 225 13 June 2008 - 16:03
Ultimo messaggio di: fede86
No New Posts   3 Spirito libero 225 9 May 2008 - 20:52
Ultimo messaggio di: Alp_Vampire
No New Posts   7 bacco 295 19 April 2008 - 01:18
Ultimo messaggio di: RobiRat
No new 9 thierry 400 18 April 2008 - 13:19
Ultimo messaggio di: Foenispro
No New Posts   7 danx 2.0 498 9 January 2008 - 21:17
Ultimo messaggio di: Biba
No New Posts   6 gianky53 340 2 November 2007 - 02:04
Ultimo messaggio di: poweruser
No New Posts   7 orsadelkispio 323 27 September 2007 - 12:41
Ultimo messaggio di: angelosimeone
No New Posts   3 KaoZ 298 8 May 2007 - 09:07
Ultimo messaggio di: Federico_82
No New Posts   4 kernelman 377 13 March 2007 - 18:51
Ultimo messaggio di: kernelman
No New Posts   6 alcina 311 5 December 2006 - 22:40
Ultimo messaggio di: poweruser
No New Posts   2 basti 313 7 October 2006 - 17:45
Ultimo messaggio di: basti

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


RSS Versione Lo-Fi Oggi è il: 2 December 2008 - 01:10
IP.Board Skin Developed By Creative Networks