Forum

Forum (https://www.coolstreaming.us/forum/)
-   Hardware & Software (https://www.coolstreaming.us/forum/a/)
-   -   Links da XML in html.... (https://www.coolstreaming.us/forum/a/23861-a.html)

ABNormal 09-24-2007 01:35 PM

Links da XML in html....
 
sto guardando mille e uno esempi, minicorsi su internet.
sto capendo come ricavare dei dati da un XML ed inserirli all'interno di un HTML (e conto di capire meglio il XSLT).
tutti gli esempi finora letti però sono del tipo
NOME - COGNOME - INDIRIZZO
e la lista delle informazioni ricavate a seguire
ricavata da qualcosa tipo:
HTML Code:
< xml id="bookcat" src="ilFile.xml">< /xml> < table border="1" datasrc="#bookcat"> < thead> < tr>< th>Nome< /th>< th>Cognome</th><th>Indirizzo</th></tr> < /thead> < tbody> < tr> < td>< span data fld="nome">< /span>< /td> < td>< span data fld="cogn">< /span>< /td> < td>< span data fld="indi">< /span>< /td> < /tr> < /tr> < /tbody> < /table>



non riesco a capire come (e se) da una voce della lista XML posso ricavare un link.
supponiamo che le voci siano ora 2e precisamente:
LINK - TITOLO
e voglio ottenere
<a href="LINK">TITOLO</a> come formattazione nel HTML

qualcuno sa come formattare il rigo
<td><span datafld="TITOLO"></span></td>
in modo che veda il nome del titolo cliccabile (con valore LINK)?

grazie
ABN

Ogher 09-24-2007 02:08 PM

per il problema del secondo post per adesso non so aiutarti, ho usato xslt solo una volta e quindi devo rivedermi un secondo qualche doc.
Intanto guarda se ti va bene questa soluzione:
file.xml
PHP Code:
<?xml version="1.0" encoding="utf-8"?>
<root>
  <item>
    <titolo>Google</titolo>
    <link>http://www.google.it</link>
  </item>
  <item>
    <titolo>Coolstreaming</titolo>
    <link>http://www.coolstreaming.us</link>
  </item>
  <item>
    <titolo>PPstream</titolo>
    <link>http://www.ppstream.com</link>
  </item>
  <item>
    <titolo>TVAnts</titolo>
    <link>http://www.tvants.com</link>
  </item>
</root>

xml2html.php
PHP Code:
<?php
$xml 
simplexml_load_file('file.xml');

foreach(
$xml->item as $item)
    echo 
'<a href="'.$item->link.'">'.$item->titolo.'</a><br />';
?>

l'unico requisito è php5 per verificare la versione di php del server e se php supporta simplexml crea il file info.php :
PHP Code:
<?php
phpinfo
();
?>

e poi visitalo.

Esempio funzionante della pagina:
http://ogher.netsons.org/xml2html.php
http://ogher.netsons.org/file.xml

ABNormal 09-24-2007 02:18 PM

è la base di quello che cercavo di sviluppare...
ti sono debitore di oramai tante cose. grazie


edit:
ma
PHP Code:
 < ?php
$xml 
simplexml_load_file('file.xml');

foreach(
$xml->item as $item)
    echo 
'<a href="'.$item->link.'">'.$item->titolo.'</a>';



è tutto il testo del file?
o il file è più lungo e lo contiene solo?

Ogher 09-24-2007 02:30 PM

io ti ho postato il contenuto dei due file dell'esempio funzionante del link, non serve altro anche perchè con simplexml è facilissimo manipolare l'xml da php
vuoi che ti "riscrivo" il codice php in pseudocodice (in pratica se vuoi ti scrivo a parole quello che fa il codice) ?

ABNormal 09-24-2007 02:48 PM

Quote:
Originally Posted by Ogher
io ti ho postato il contenuto dei due file dell'esempio funzionante del link, non serve altro anche perchè con simplexml è facilissimo manipolare l'xml da php
vuoi che ti "riscrivo" il codice php in pseudocodice (in pratica se vuoi ti scrivo a parole quello che fa il codice) ?


forse devo capire meglio le caratteristiche di un xml compatibile simplexml
il mio è:
PHP Code:
<?xml version="1.0"?>
  <Contents>
   <Movie Number="1" Checked="True" OriginalTitle="Twiddlestix" FormattedTitle="Twiddlestix" Producer="1001onlinegames" URL="http://1001onlinegames.com/gamesfiles/puzzle/twiddlestix.swf"/>

dove, per il momento, i link che mi sono utili sono il OriginalTitle e il URL
ho provato a fare con il tuo esempio la modifica dei soli campi ma mi da errore.
Fatal error: Call to undefined function: simplexml_load_file() in D:\Inetpub\webs\galleria-aureait\xml2html.php on line 2

Ogher 09-24-2007 03:06 PM

PHP Code:
 $nomeVar->nomeTag 
funziona se devi prelevare il contenuto di un tag, dato che a te servono i valori degli attributi di un tag devi usare:
PHP Code:
 $nomeVar['nomeAttributo'


ecco i file modificati:
file.xml
PHP Code:
<?xml version="1.0"?>
<Contents>
   <Movie Number="1" Checked="True" OriginalTitle="Twiddlestix" FormattedTitle="Twiddlestix" Producer="1001onlinegames" URL="http://1001onlinegames.com/gamesfiles/puzzle/twiddlestix.swf"/>
 </Contents>


xml2html.php
PHP Code:
<?php
$xml 
simplexml_load_file('file.xml');

foreach(
$xml->Movie as $movie)
    echo 
'<a href="'.$movie['URL'].'">'.$movie['OriginalTitle'].'</a><br />';
?>


Esempio funzionante della pagina:
http://ogher.netsons.org/xml2html.php
http://ogher.netsons.org/file.xml

Edit: ho letto ora la tua aggiunta, il server su cui stai provando le pagine non supporta simplexml, però il discorso sugli attributi vale lo stesso
Edit2: simplexml accetta tutti gli xml validi

ABNormal 09-24-2007 03:23 PM

approfitto di te allora (tanto x cambiare)
stabilito che aruba non è compatibile simplexml, che posso fare?
io sto provando a creare qualcosa in XSL ma poi non so come utilizzarlo (pare, se ho capito bene, che vada fattointerpretare da un ASP...chessaràmmai??)
insomma metto il file xml il file xsl ma vedo sempre i codici, mannaggia.

Ogher 09-24-2007 03:57 PM

ho dato una letta rapida alle parti essenziali della guida http://xml.html.it/guide/leggi/60/guida-xslt/ e ho fatto questo:

file2.xml
HTML Code:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="stile.xsl"?> <Contents> <Movie Number="1" Checked="True" OriginalTitle="Twiddlestix" FormattedTitle="Twiddlestix" Producer="1001onlinegames" URL="http://1001onlinegames.com/gamesfiles/puzzle/twiddlestix.swf"/> </Contents>


stile.xsl
HTML Code:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <xsl:apply-templates select="//Movie"/> </html> </xsl:template> <xsl:template match="//Movie"> <a> <xsl:attribute name="href"> <xsl:value-of select="@URL"/> </xsl:attribute> <xsl:value-of select="@OriginalTitle"/> </a> <br/> </xsl:template> </xsl:stylesheet>


Esempio funzionante:
http://ogher.netsons.org/file2.xml
http://ogher.netsons.org/stile.xsl

ABNormal 09-24-2007 04:16 PM

e allora ci stavo quasi...
solo che io cliccando sul tuo xsl vedo questo:


e cioè la struttura, e non il pseudo-HTML che dovrebbe generare.

Ogher 09-24-2007 04:18 PM

Quote:
Originally Posted by ABNormal
e allora ci stavo quasi...
solo che io cliccando sul tuo xsl vedo questo:


e cioè la struttura, e non il pseudo-HTML che dovrebbe generare.

e deve essere così...
tu definisci lo stile nel file xsl, ma poi lo applichi al file xml aggiungendo in testa al file:
HTML Code:
<?xml-stylesheet type="text/xsl" href="stile.xsl"?>

se clicchi http://ogher.netsons.org/file2.xml vedrai il foglio di stile applicato correttamente


All times are GMT +2. The time now is 02:09 PM.

Powered by: vBulletin Version 3.0.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.