Fusionchart,XML,渲染错误

时间:2015-08-29 10:35:02

标签: php simplexml fusioncharts

我有以下脚本创建一个XML字符串,用于使用Fusionchart

呈现图表
<?php
 include("includes/fusioncharts.php");
 $chart = new SimpleXMLElement("<chart></chart>");
 $chart->addAttribute('caption', 'testgrafiek');
 $chart->addAttribute('subcaption', 'onderlabel');
 $chart->addAttribute('xaxisname', 'naam');
 $chart->addAttribute('yaxisname', 'aantal ronden');
 $categories = $chart->addChild('categories');
 $category[0] = $categories->addChild('category');
 $category[1] = $categories->addChild('category');
 $category[0] ->addAttribute('label', 'alias1');
 $category[1]->addAttribute('label', 'alias2');

$dataset1 = $chart->addChild('dataset');
$dataset1->addAttribute('seriesname', 'Revenues');
$dataset1det[0] = $dataset1->addChild('set');
$dataset1det[0] ->addAttribute('value', '16000');
$dataset1det[1] = $dataset1->addChild('set');
$dataset1det[1] ->addAttribute('value', '18000');

$dataset2 = $chart->addChild('dataset');
$dataset2->addAttribute('seriesname', 'Profits');
$dataset2->addAttribute('renderas', 'line');
$dataset2det[0] = $dataset2->addChild('set');
$dataset2det[0] ->addAttribute('value', '1000');
$dataset2det[1] = $dataset2->addChild('set');
$dataset2det[1] ->addAttribute('value', '8000');

$columnChart = new FusionCharts("column3D", "myFirstChart" , 700, 400, "chart-1", "xml", $chart);
$columnChart->render();

Header('Content-type: text/xml');
echo $chart->asXML();
?>
<div id="chart-1"><!-- Fusion Charts will render here--></div>

如果我运行上面的代码,我在页​​面上有一个错误,如

This page contains the following errors:

error on line 7 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.

如果我在没有

的情况下运行代码
$columnChart = new FusionCharts("column3D", "myFirstChart" , 700, 400, "chart-1", "xml", $chart);
$columnChart->render();

和     

我在页面上没有错误并看到正确的XML。

不知道如何解决这个问题。

有人?

1 个答案:

答案 0 :(得分:0)

如果您想将text / html输出与XML混合,那么您需要自己格式化XML并对其进行HTML编码,以便浏览器不会尝试解释标记。

首先,您需要了解您正在使用哪种类型的标头,以便输出应采用该格式。

示例:

header("Content-Type: text/xml;"); //gives the output in xml format

header("Content-Type: text/php;"); //gives the output in php format

header("Content-Type: text/html;"); //gives the output in html format

我已经使用了您的代码并摆脱了您所面临的问题,只是要以 html 格式查看输出,您必须使用header("Content-Type: text/html;");

问题已经解决,但您的数据不足以获取图表,因此通过使用足够的数据,您将能够看到所需的图表。