gpt4 book ai didi

php - 文档末尾的额外内容 mysql php xml

转载 作者:行者123 更新时间:2023-11-29 19:05:11 24 4
gpt4 key购买 nike

我正在尝试将数据从 MySQL 表导出到 XML 文件。

我正在使用 Adob​​e Dreamweaver CC 2015 创建 index.php 文件,其中包含以下代码:

<?php
header('Content-type: text/xml');

$xmlout = "<?xml version=\"1.0\" ?>";
$xmlout .= "<list>";

$db = new PDO('mysql:host=hostname;dbname=dbname','dbusername','password');
$stmt = $db->prepare("select * from tablename");
$stmt->execute();
while($row = $stmt->fetch()){
$xmlout .= "\t<persons>\n";
$xmlout .= "\t\t<id>".$row['ID']."</id>\n";
$xmlout .= "\t\t<name>".$row['name']."</name >\n";
$xmlout .= "\t\t<phone>".$row['phone']."</phone >\n";
$xmlout .= "\t\t<address>".$row['address']."</address >\n";
$xmlout .= "\t\t<status>".$row['status']."</status>\n";
$xmlout .= "\t</persons>\n";
}

$xmlout .= "</list>";
echo $xmlout;
?>

当我运行该页面时,我发现此错误:

error on line 10 at column 8: Extra content at the end of the document

chrome Inspect > Sources > index.php 中的结果

<?xml version="1.0" ?>
<list>
<persons>
<id>1</id>
<name>John</name>
<phone>123456</phone>
<address>123 street</address>
<status>Ready</status>
</persons>
</list>

但是有一个 .当我尝试使用 http://www.xmlvalidation.com/ 来验证我的 XML 输出时,我发现

</list>&#65279;

我应该怎么做才能修复这个错误?

最佳答案

考虑使用专用W3C - 兼容的 XML 库,如 PHP 的 DOMDocument类来构建 XML 内容,而不是使用连接的文本字符串。使用 createElementappendChildsetAttribute 以及 formatOutputpreserverwhiteSpace 等方法属性,您无需连接特殊字符,例如换行符、制表符和尖括号。

需要注意的是,XML 不是像 csv/txt 这样的原始文本文件,而是一种标准化的结构化文档,具有编码和标记规则来描述数据。

header('Content-type: text/xml');

// INITIALIZE DOM OBJECT
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;

// CREATE ROOT AND APPEND TO DOCUMENT
$xmlRoot = $dom->createElement("list");
$xmlRoot = $dom->appendChild($xmlRoot);

// QUERY DATABASE
$db = new PDO('mysql:host=hostname;dbname=dbname','dbusername','password');
$stmt = $db->prepare("select * from tablename");
$stmt->execute();

// FETCH ROWS ITERATIVELY
while($row = $stmt->fetch()){
// APPEND PERSON AS CHILD OF ROOT
$personNode = $xmlRoot->appendChild($dom->createElement('person'));

// APPEND CHILDREN TO PERSON
$personNode->appendChild($dom->createElement('id', $row['id']));
$personNode->appendChild($dom->createElement('name', $row['name']));
$personNode->appendChild($dom->createElement('phone', $row['phone']));
$personNode->appendChild($dom->createElement('address', $row['address']));
$personNode->appendChild($dom->createElement('status', $row['status']));
}
$stmt = null;
$db = null;

// OUTPUT TO SCREEN
echo $dom->saveXML();

关于php - 文档末尾的额外内容 mysql php xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43565468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com