作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好,我又来了。在我最后一个问题之后XML parsing error (RESOLVED) XML Sample这确实帮助我了解了更多。我正在对抗另一堵砖墙。
我的问题:我需要做的是在我的 php 文档所在的同一目录中编写一个 .xml 文件。因此,当我执行脚本时,它应该自动将 .xml 文件保存到 php 文件所在的目录中。这可能吗?如何实现?
目前我正在尝试使用 openURI 输出文件,但是当我这样做时,我收到以下错误(翻译自荷兰语):
有趣的是,如果我使用 php://output,它会在浏览器中正确显示所有内容。
XML-Parse Error: no element found
Location: xml.php
Rownumber 1, column 1:
代码:
<?php
//SELECTEER ALLES VAN DATABASE PROJECTEN
$sql = "SELECT * FROM projecten ORDER BY id";
$res = mysql_query($sql);
//BEGIN XML
$xml = new XMLWriter();
$xml->openURI('file.xml');
$xml->setIndentString ( '	' );
$xml->startDocument( '1.0', 'UTF-8', 'no' );
$xml->setIndent(true);
//FUNCTIE VOOR MAKKELIJKER INVOEREN
function addNode( $xml, $NodeName, $Value ) {
$xml->startElement( $NodeName );
$xml->writeCData( $Value );
$xml->endElement();
}
//START HOOFD ELEMENT
$xml->startElement('projecten');
//WHILE LOOP DOOR DATABASE
while ($row = mysql_fetch_assoc($res)) {
//START PROJECT
$xml->startElement('project');
$xml->writeAttribute('id', $row['id']);
addNode( $xml, "id", $row["id"] );
addNode( $xml, "projectnaam", $row['projectnaam'] );
addNode( $xml, "status", $row['status'] );
addNode( $xml, "klantnaam", $row['klantnaam'] );
addNode( $xml, "startdatum", $row['startdatum'] );
addNode( $xml, "eindddatum", $row['einddatum'] );
//EIND PROJECT
$xml->endElement();
}
//EINDE HOOFD ELEMENT
$xml->endElement();
//EINDE DOCUMENT
$xml->endDocument();
header('Content-type: text/xml');
$xml->flush();
?>
再次感谢...
最佳答案
我建议您使用 fopen 。这是我的代码-
<?php
include('db.php');
$sql = "SELECT * FROM `data`";
$result = mysqli_query($conn,$sql);
$xml = new XMLWriter();
$xml->openMemory();
$xml->setIndent(true);
function addNode($xml,$NodeName,$Value){
$xml->startElement($NodeName);
$xml->writeCData($Value);
$xml->endElement();
}
$xml->startElement('Details');
while($row = mysqli_fetch_assoc($result)){
$xml->startElement('Data');
$xml->writeAttribute('date',$row['date']);
addNode($xml,"Id",$row["id"]);
addNode($xml,"age",$row["age"]);
addNode($xml,"Name",$row["name"]);
$xml->endElement();
}
$xml->endElement();
$xml->endDocument();
$content = $xml->flush();
$fp = fopen("filetobesaved.xml",'w');
fwrite($fp,$content);
fclose($fp);
header('Content-type: text/xml');
echo $content;
?>
此代码将创建一个生成 xml 文件并将其保存在呈现 php 代码文件的同一文件夹中,并将其保存为名称 filetobesaved.xml 。这里 w
将创建该文件,如果它不存在 - $fp = fopen("filetobesaved.xml",'w');
如果您想创建一个新目录并将 .xml 文件保存到其中,那么您可以这样做这样-
$filename = 'D:/foldertobecreated/filetobesaved.xml';
$dirname = dirname($filename);
if (!is_dir($dirname))
{
mkdir($dirname, 0755, true);
}
$fp = fopen("$dirname\\filetobesaved.xml",'w');
关于php - XMLWrite 将文件输出到与 php 脚本相同的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19380567/
大家好,我又来了。在我最后一个问题之后XML parsing error (RESOLVED) XML Sample这确实帮助我了解了更多。我正在对抗另一堵砖墙。 我的问题:我需要做的是在我的 php
我是一名优秀的程序员,十分优秀!