我试图使用php.everytime创建一个xml文件我运行代码页面显示某个点的代码作为屏幕上的文本。我的代码如下:
<?php
if(!$dbconnet = mysql_connect('I took out the details')){
echo "connection failed to the host.";
exit;
}
if (!mysql_select_db('siamsati_db')){
echo "Cannot connect to the database.";
exit;
}
$table_id = 'events';
$query = "SELECT * FROM $table_id";
$dbresult = mysql_query($query, $dbconnect);
$doc = new DomDocument('1.0');
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
while($row = mysql_fetch_assoc($dbresult)){
$ooc = $doc->createElement($table_id);
$occ = $root->appendChild($occ);
foreach ( $row as $fieldname => $fieldvalue){
$child = $doc->createElement($fieldname);
$child = $occ->appendchild($child);
$value = $doc->createTextNode($fieldvalue);
$value = $child->appendChild($value);
}
}
$xml_string = $doc->saveXML();
echo $xml_string;
?>
,显示的页面显示:
的createElement( '根'); $ root = $ doc-&GT;使用appendChild($根);而($ row = mysql_fetch_assoc($ dbresult)){$ ooc = $ doc-&GT;的createElement($的table_id); $ occ = $根 - &GT;使用appendChild($ OCC); foreach( $ row as $ fieldname =&gt; $ fieldValue方法){ $ child = $ doc-&GT;的createElement($字段名); $ child = $ occ-&gt; appendchild($ child); $ value = $ doc-&GT;一个createTextNode($ fieldValue方法); $ value = $ child-&gt; appendChild($ value); $ xml_string = $ doc-&gt; saveXML(); echo $ xml_string; ?&GT;
有什么东西我错过了。检查所有的引用,认为这是一开始,但他们似乎都是正确的。有什么建议我做错了很受赞赏?
答案 0 :(得分:0)
在您发布的代码中,缺少初始<?php
标记...
答案 1 :(得分:0)
将内容类型设置为XML,以便浏览器将其识别为XML。
header( "content-type: application/xml; charset=ISO-8859-15" );
在您的代码中将其更改为:
// Set the content type to be XML, so that the browser will recognise it as XML.
header( "content-type: application/xml; charset=ISO-8859-15" );
// "Create" the document.
$doc = new DOMDocument( "1.0", "ISO-8859-15" );
+++我认为你可以做这样的事情
<root>
<?
foreach ( $row as $fieldname => $fieldvalue){
?>
<events>
<fieldname><?=fieldname; ?></fieldname>
<fieldvalue><?=$fieldvalue; ?></fieldvalue>
</events>
}
?>
</root>