即使文件已损坏,是否有读取XML文件的方法?在写入XML文件时读取XML文件PHP
我试图在文件被写入并输出时得到一个XML文件,但由于根元素没有关闭,因为它正处于写入过程中,所以我得到一个坏的错误。
是否有反正如何实现这一目标?
即使文件已损坏,是否有读取XML文件的方法?在写入XML文件时读取XML文件PHP
我试图在文件被写入并输出时得到一个XML文件,但由于根元素没有关闭,因为它正处于写入过程中,所以我得到一个坏的错误。
是否有反正如何实现这一目标?
$broken ='<root>
<item>foo</item>';
$d = new DOMDocument();
$d->loadXML($broken);
echo $d->saveXML($d); // useless, only prologue
$d->recover = true; // <-- it's limited, but will try its best.
$d->loadXML($broken);
echo $d->saveXML($d);
/*
* <?xml version="1.0" encoding="UTF-8"?>
* <root>
* <item>foo</item></root>
*/
我必须先保存固定的XML文件? – 2013-03-11 19:47:24
如果你愿意......我只用' - > saveXML()'作为一种方法来显示它是否尽可能多地恢复了XML。在调用' - > loadXML()'后,你可以用'DOMDocument'完成任何你想做的事情。 – Wrikken 2013-03-11 19:49:06
谢谢,是否可以删除页面顶部的错误? – 2013-03-11 19:52:49
请使用文件锁定或使您的写入原子,以便其他进程不会看到一半写入的文件。有关这两种方法的代码,请参阅this answer的中间部分。
您还可以通过为您处理并发性的事情来调解您的写入,并为您提供一致的读取和写入操作,即数据库。它不一定是一个完整的独立进程 - 你可以使用sqlite或简单的key-value store。
我们可以问你为什么要达到这个目的吗?等待文件写入完成然后抓取有什么问题? – 2013-03-11 19:29:42
由于文件是一个大文件,需要一段时间才能完成,因此我想在完成之前输出内容。 – 2013-03-11 19:30:47
是否需要_need_'xmlreader'或者'DOMDocument'好? – Wrikken 2013-03-11 19:33:24