Bonjour,
je développe une petite application Web, mais je rencontre quelques problèmes dans l'implémentation d'un code XSL, langage que je maîtrise bien mal.
J'ai fait une page très courte XML, une page XSL qui marchait bien jusqu'à ce que je mette un script JavaScript dedans. Ce script est censé récupérer l'élément racine, et afficher le nombre de ses éléments fils. Le problème est qu'il marque un nombre d'éléments fils indéfini, il n'arrive pas à trouver l'élément racine.
Voici mon fichier XML:
[code]
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="testStyle.xsl"?>
<base>
<pays>
<nom>France</nom>
<annee>
<temps>2000</temps>
<indicateur>
<nom> PIB </nom>
<valeur> 200 </valeur>
<statut> off </statut>
<origine> WB </origine>
</indicateur>
<indicateur>
<nom> Density </nom>
<valeur> 106 </valeur>
<statut> off </statut>
<origine> NSO </origine>
</indicateur>
</annee>
<annee>
<temps>2001</temps>
<indicateur>
<nom> PIB </nom>
<valeur> 201 </valeur>
<statut> pred</statut>
<origine> WB </origine>
</indicateur>
<indicateur>
<nom> Density </nom>
<valeur> 106 </valeur>
<statut> pred </statut>
<origine> NSO </origine>
</indicateur>
</annee>
</pays>
<pays>
<nom>Switerland</nom>
<annee>
<temps>2001</temps>
<indicateur>
<nom> PIB </nom>
<valeur> 122 </valeur>
<statut> pred </statut>
<origine> WB </origine>
</indicateur>
</annee>
</pays>
</base>
/code
et mon fichier XSL:
[code]
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Edit data</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<script type="text/javascript" language="javascript">
function len(){
node=window.document.getElementsByTagName("pays");
alert(node.childNodes.length);
}
</script>
<body onload="len()">
<table border="1">
<xsl:for-each select="/base/pays">
<tr>
<td> <xsl:value-of select="./nom" /> </td>
<xsl:for-each select="./annee">
<td><xsl:value-of select="./temps" /></td>
<xsl:for-each select="./indicateur">
<td>
<xsl:value-of select="./nom" />
</td>
<td> <xsl:value-of select="./valeur" /> </td>
</xsl:for-each>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
/code
Les questions que je me pose sont:
1. Est-ce.que j'ai écrit le script au bon endroit?
2. Y a t.il un problème avec ma fonction len()?
Je n'ai pas trouvé de réponse sur le net, aussi j'aurais bien besoin de votre aide.
Merci!
Afficher la suite