2009-10-29 4 views
0

EDIT: Ce que je veux dire est l'affichage des données XML via HTML, ne pas essayer d'obtenir du HTML en XML.Un moyen facile de charger du contenu HTML à partir de XML?

Existe-t-il un moyen simple de charger du contenu de XML en HTML? Pour vous donner une idée, voici mon DTD pour les fichiers XML:

<!DOCTYPE bookreport [ 
    <!ELEMENT page (title,author,image?,section+)> 
     <!ELEMENT title (#PCDATA)> 
     <!ELEMENT author (#PCDATA)> 
     <!ELEMENT image (path,side,alternate?)> 
     <!ATTLIST image type CDATA #REQUIRED> 
     <!ATTLIST image width CDATA #REQUIRED> 
     <!ATTLIST image height CDATA #REQUIRED> 
     <!ATTLIST image bookcover (yes) "no"> 
     <!ELEMENT path (#CDATA)> 
     <!ELEMENT side (#CDATA)> 
     <!ELEMENT alternate (#PCDATA)> 
     <!ELEMENT section (name,image?,paragraph*,subsection*)> 
     <!ELEMENT name (#PCDATA)> 
     <!ELEMENT paragraph (#PCDATA)> 
      <!ELEMENT emphasis (#PCDATA)> 
     <!ELEMENT subsection (name,paragraph+,image?)> 
    ]> 

Comme vous pouvez le voir, il est séparé en sections et sous-sections. Le seul balisage visuel réel dans le XML dans la balise <emphasis>, que je ne voulais pas convertir en italique. J'ai aussi fait une mise en page CSS qui me plait, deux colonnes, en partie fluide et reste centrée. Ce que je veux c'est qu'il y ait des liens dans la barre de navigation pour chaque section.

Je voudrais vraiment le faire comme ça parce qu'il sépare les données du balisage, qui est également séparé de l'apparence (CSS). Est-il possible de le faire sans codage côté serveur (JavaScript je suppose)? Si non, comment puis-je le faire en PHP? Même si c'est mieux avec PHP, j'aimerais aussi savoir comment (si possible) le faire avec JavaScript, pour pouvoir l'utiliser quand PHP n'est pas disponible. Ce n'est pas pour quelque chose d'important.

+0

"simple" est relatif. Mais Gurdas a raison. La solution est XSLT. Faire du côté serveur avec PHP serait plus fiable sur le frontal cross-browser. –

+0

L'utilisateur verra-t-il réellement un fichier .html ou un fichier xml stylé/formaté/transformé? – mk12

+0

Et la compatibilité n'est pas un problème, non? – mk12

Répondre

1

Vous pouvez faire une transformation XSLT des données XML sur le client avec Javascript pour obtenir votre code HTML;

This devrait vous aider à démarrer

+0

Cela ressemble à ce que je veux, je vais essayer. – mk12

+0

Merci! Je n'ai pris que quelques heures et je suis très content du résultat. Identique à la version html ordinaire dans le contenu et la vitesse (vitesse notable). – mk12

+0

Devrais-je utiliser XSLT 1.0 ou 2.0? – mk12

Questions connexes