这是一个生成一些XML的简单php脚本:
<?php
// create doctype
$dom = new DOMDocument("1.0");
// display document in browser as plain text
header("Content-Type: text/plain");
// create root element
$root = $dom->createElement("page");
$dom->appendChild($root);
// loop through all posts
while (have_posts()) : the_post();
// create child element
$item = $dom->createElement("title");
$root->appendChild($item);
// add title data
$text = $dom->createTextNode(the_title());
$item->appendChild($text);
endwhile;
// save and display tree
echo $dom->saveXML();
?>
似乎在我的XML中使用函数 the_title()最终会在xml树之外打印(下面是上面代码中的浏览器输出):
This is my second postHello world!<?xml version="1.0"?>
<page><title></title><title></title></page>
如果我用一些静态文本替换函数 the_title(),上面的代码似乎工作正常,xml是根据需要生成的,例如
$text = $dom->createTextNode("Title-goes-here");
生成的XML(这正是我想要的):
<?xml version="1.0"?>
<page><title>Title-goes-here</title><title>Title-goes-here</title></page>
the_title()是Wordpress函数,我正在尝试以XML格式呈现页面。
答案 0 :(得分:3)
我认为像the_post()和the_title()这样的函数会立即输出值而不是返回它。其中一些具有像get_the *()这样的等价物,它将返回值而不是打印;这可能就是你想要的。
This answer可能有用
答案 1 :(得分:1)
我也不建议使用DOMDocument 生成 XML。它相当缓慢且耗费内存。考虑使用XMLWriter或“pupre-php”方式。