1 votes

générer du javascript en utilisant xml et xsl

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">&#160;</div>

</xsl:template>
</xsl:stylesheet>

Mon résultat

<!-- notice no javascript -->
<div id="chart_div"> </div>

2voto

Chris Doggett Points 9987

À quoi ressemble la ligne de votre XML qui inclut le fichier XSL ? J'ai ajouté ces deux lignes au début du XML :

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>

Le résultat était correct, bien que le graphique n'ait pas montré les données correctement. Il a au moins été appelé. alt text

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X