генерировать JavaScript с использованием XML и XSL - PullRequest
1 голос
/ 21 июля 2009

Я перепробовал каждое найденное здесь решение и даже более крупный поиск в Google, но, похоже, ничего не работает. Вот моя проблема ... У меня есть данные в формате XML, которые я хотел бы визуализировать с помощью API визуализации Google. Я надеялся, что смогу просто использовать XSL для генерации того, что мне нужно, вместо того, чтобы что-то делать с источниками данных (у меня есть свои причины). Но код JavaScript не отображается в моем выводе. Это вообще возможно?

Мой XML

<DocumentElement>
  <QueryResults>
    <Year>2000</Year>
    <Population>100000</Population>
  </QueryResults>
  <QueryResults>
    <Year>2001</Year>
    <Population>105000</Population>
  </QueryResults>
</DocumentElement>

Мой 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>

Мой вывод

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

1 Ответ

2 голосов
/ 21 июля 2009

Как выглядит строка в вашем XML, которая включает в себя файл XSL? Я добавил эти две строки в начало XML:

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

Результат был правильным, хотя на самом деле график не отображал данные должным образом. Это было по крайней мере, называется. альтернативный текст http://i21.photobucket.com/albums/b296/Bonus_Eruptus/so/xml_chart.jpg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...