首頁 >後端開發 >php教程 >php中dom生成的xml如何输出到页面上

php中dom生成的xml如何输出到页面上

WBOY
WBOY原創
2016-06-23 14:38:16891瀏覽

$id= $_GET['id'];
$n = $_GET['n'];
//包含数据库连接文件
include('conn.php');
$dom=new DomDocument('1.0', 'utf-8');
$dom->formatOutput = true;
if($category == ""){
   exit;
};
//  创建根节点
$element = $dom->createElement('element');
$dom->appendchild($element);
$element->setAttribute('n',$n);
$query = mysql_query( "select * from pictures order by LevelID='$id'" );
while( $result = mysql_fetch_array( $query ) )
{
 $t=$dom->createElement('e');
         $t->setAttribute('cr',$result['c']);
         $t->setAttribute('isNew',$result['isNew']);
         $t->setAttribute('fileUrl',$result['fileUrl']);
         $element->appendChild($t);
         print_r($dom->saveXML());
     
}
echo $dom->saveXML();

?> 
我用print和echo都不能把dom输出到页面上,
请问php里dom生成的xml如何能被输出到页面上,谢谢


回复讨论(解决方案)

你这是创建的xml,你得些一个程序读取xml

1)DOMDocument读取xml

$doc = new DOMDocument(); 
$doc->load('person.xml'); //读取xml文件 
$humans = $doc->getElementsByTagName( "humans" ); //取得humans标签的对象数组 
foreach( $humans as $human ) 

$names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组 
$name = $names->item(0)->nodeValue; //取得node中的值,如  
$sexs = $human->getElementsByTagName( "sex" ); 
$sex = $sexs->item(0)->nodeValue; 
$olds = $human->getElementsByTagName( "old" ); 
$old = $olds->item(0)->nodeValue; 
echo "$name - $sex - $old\n"; 

?>

 

  2)simplexml读取xml

$xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中 
foreach($xml_array as $tmp){ 
echo $tmp->name."-".$tmp->sex."-".$tmp->old."
"; 

?> 

发xml doctype的header

我这不是在读取一个xml,是从数据库读取数据并生成一个xml并显示在网页上,我在循环里如果写$dom->save('new_materials.xml');是可以正常生成xml的,可我是想显示在网页上,我用echo和print都不能实现

用echo和print都是可以的,但要保证没有其他输出。
否则会因多了其他内容而造成浏览器解析失败
最好还先发一个类型声明:
header("Content-type: text/xml");

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn