J'ai essayé toutes les solutions que j'ai trouvées ici et même une recherche plus large sur Google, mais rien ne semble fonctionner. Voici mon problème... J'ai des données en XML que je voudrais visualiser à l'aide de l'API de visualisation de Google. J'espérais pouvoir simplement utiliser XSL pour générer ce dont j'ai besoin au lieu de faire quoi que ce soit avec les sources de données (j'ai mes raisons). Mais le code javascript n'apparaît pas dans mon résultat. Est-ce possible ?
Mon XML
<DocumentElement>
<QueryResults>
<Year>2000</Year>
<Population>100000</Population>
</QueryResults>
<QueryResults>
<Year>2001</Year>
<Population>105000</Population>
</QueryResults>
</DocumentElement>
Mon fichier XSL
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8"/>
<xsl:template match="/">
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', {packages:['barchart']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('string', 'Population');
data.addRows(2); // hard-coded for testing
<xsl:for-each select="DocumentElement/QueryResults">
data.setValue(0, 0, '<xsl:value-of select="Year"/>');
data.setValue(0, 1, '<xsl:value-of select="Population"/>');
</xsl:for-each>
var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, {width: 400, height: 240, is3D: true, title: 'Population'});
}
</script>
<div id="chart_div"> </div>
</xsl:template>
</xsl:stylesheet>
Mon résultat
<!-- notice no javascript -->
<div id="chart_div"> </div>