2009-07-21 4 views
1

나는 여기와 심지어 더 큰 Google 검색에서 찾은 모든 솔루션을 시도했지만 아무것도 작동하지 않는 것 같습니다. 여기 내 문제가있다. 나는 XML로 된 데이터를 가지고 있는데, 구글 비주얼라이제이션 API를 사용하여 시각화하고 싶다. XSL을 사용하여 데이터 소스로 무엇을 할 필요없이 원하는 것을 생성 할 수 있기를 바랬습니다 (이유가 있습니다). 하지만 javascript 코드가 내 출력에 표시되지 않습니다. 이것은 가능한가?xml과 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> 

답변

2

무엇합니까 XSL 파일이 같이 포함하여 XML의 라인? 나는 XML의 상단에 다음 두 줄을 추가 : 그래프가 실제로 데이터를 제대로 표시되지 않았지만

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

결과는 정확했다. 그것은 적어도 불렀다. alt text http://i21.photobucket.com/albums/b296/Bonus_Eruptus/so/xml_chart.jpg

+0

필자가 붙여 넣은 것은 정확하게 XML 출력과 비슷합니다. 그런 다음 타사 구성 요소가 XML과 내 XSL을 기반으로 렌더링됩니다 ... 무슨 일이 일어나는지 알아 내기 위해 렌더러를 파헤쳐 야 할 수도 있습니다. 감사. – NJChim

+0

어떤 제 3 자 구성 요소, 당신이 내 질문에 신경 쓰지 않는다면? 앞에서 언급 한 것처럼 입력 내용을 test.xml 및 test.xsl에 복사 한 다음 스타일 시트 지시문을 추가하면 올바르게 작동합니다. 제 생각에이 도구는 아마도 당신의 도구 체인에있는 것일 겁니다. –

+0

DNN 보고서 모듈에서 XML 침입이 있으며 내장 된 XSL 시각화를 사용할 수 있는지보고 있습니다. HTML 비주얼 라이저를 사용하여 작업하고 있지만 추한 것입니다. 그리고 DNN에 익숙하지 않다면 이것은 아마도 당신에게 아무 의미가 없습니다. :) – NJChim

관련 문제