我有一个这个项目的截止日期(星期一)。它在本地主机上工作得很好,但是当我将其上传到我们的 Web 服务器时,我发现我们没有启用所有 DOM 包,我无法使用函数 dom_import_simplexml()。我的服务器管理员忽略了我的请求,可能是因为通知时间太短,我不可能那么快地将 XML 系统重写为数据库系统。
这似乎是我遇到的唯一错误。拜托,如果你有任何其他想法,我很想听听。我很茫然,因为我找不到任何其他解决方案。我所要做的就是创建一些XML元素并用CDATA值填充它们,我不敢相信SimpleXML不支持这一点!
请问,您能想到任何替代方案吗?我是开放的,因为我不知道我能做什么。
// Add a <pages /> element
$xml->addChild('pages');
// Populate it with data
foreach($pages as $page){
$new = $xml->pages->addChild('page');
$new->addAttribute('pid', $page['pid']);
$new->addAttribute('title', $page['title']);
if(isset($page['ancestor']))
$new->addAttribute('ancestor', $page['ancestor']);
$node = dom_import_simplexml($new);
$no = $node->ownerDocument;
$node->appendChild($no->createCDATASection($page['content']));
}
最后三行显然行不通,我不知道我还能用它们做什么!
非常感谢您能提供的任何帮助。
他们不支持这一点是令人困惑的。您必须破解流。
$xml->node = '<![CDATA[character data]]>';
echo preg_replace('/']']></', ']]><', preg_replace('/<!'[CDATA/','<![CDATA', $xml->asXML()));
这是有问题的,也许这些字符串可能会出现在您的 cdata 中的某个地方。你必须承担的风险。
抱歉,我无法帮助您完成截止日期,但至少任何对使用 DOM 感到恼火或无法使用它的人都会有各种各样的解决方案。