用户创建XML文件并将其作为BLOB存储在数据库中。每个XML文件都有自己的行。
我的脚本应该查询数据库并检索每一行的XML文件。
每个XML文件都应该在一个自己的php对象中并存储在一个数组中。之后,我需要访问每个XML的DOM,以便在html模板中显示数据。
这是我到目前为止所得到的:
$stmt = $pdo->query('SELECT xml FROM table');
foreach ($stmt as $row)
{
echo $row['xml'] . "\n";
}
它将输出没有xml-tags的信息。我想知道为什么。问题是,我不知何故需要访问DOM。
我读到了
使用simplexml_load_file
但它需要一个文件路径,我没有这个文件路径,因为文件存储为数据库中的BLOB。
谢谢!
答案 0 :(得分:2)
您可以使用simplexml_load_string代替......
$stmt = $pdo->query('SELECT xml FROM table');
foreach ($stmt as $row)
{
$data = simplexml_load_string($row['xml']);
echo "<pre>".$data->asXML()."</pre>";
}
您可能看不到标记的原因是您将它们回显到HTML页面,该页面试图将它们解释为HTML标记。
不确定如何按照foreach
进行操作,因为它通常会被写为
while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) // Add correct retrieval method your after
{
$data = simplexml_load_string($row['xml']);
echo "<pre>".$data->asXML()."</pre>";
}
这取决于API以及您是否使用自己的类方法。