我有以下脚本创建一个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。
不知道如何解决这个问题。
有人?
答案 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;");
问题已经解决,但您的数据不足以获取图表,因此通过使用足够的数据,您将能够看到所需的图表。