【发布时间】:2014-06-10 10:39:42
【问题描述】:
所以在 Drupal 中,我希望使用代码为每个节点创建一个 XML 表单。我已经使用以下代码成功创建了一个 XML 表...
$xml = new DOMDocument("1.0", "utf-8");
$root = $xml->createElement("article");
$xml->appendChild($root);
$front = $xml->createElement("front");
$root->appendChild($front);
$journal_meta = $xml->createElement("journal-meta");
$front->appendChild($journal_meta);
$journal_id = $xml->createTextNode($form['#node']->field_journal_id['und'][0]['value']);
$journal_meta->appendChild($journal_id);
$xml->formatOutput = true;
echo "<xmp>". $xml->saveXML() ."</xmp>";
$xml->save("mybooks.xml") or die("Error");
OUTPUT:
<?xml version="1.0" encoding="utf-8"?>
<article>
<front>
<journal-meta>en</journal-meta>
</front>
</article>
现在我还想加载包含 HTML 的 body 字段并将其添加到上面的 XML 表输出中。我已经设法将 body 字段加载到 domDocument 中,然后专门针对 body 标签来创建节点列表。
我无法做的是遍历节点列表,以及我原来的 $xml 变量上的所有元素和 appendchilds。
$body = $form['#node']->body['und'][0]['value'];
$tidy = tidy_parse_string($body);
$body = $tidy->body();
$dom = new DomDocument();
$dom->loadHTML('<?xml encoding="UTF-8">' . $body);
print_r($dom->saveHTML());
$div = $dom->getElementsByTagName('body');
$dom 变量包含 domDocument,$div 变量包含 Nodelist,如何在不使用 Cdata 的情况下创建一个 XML 文档?
【问题讨论】:
-
你能提供一个目标xml的例子吗?
-
目的是从页面创建 XML 提要。如果您的意思是我尝试添加的正文示例,它基本上是任何 html。
这是一些测试内容
更多测试内容
-
不是正文,而是您想要生成的完整、完整的 XML(至少包含 HTML)。 btw 我更喜欢 Atom 作为提要,有时使用我自己的命名空间扩展特定数据。
-
请在提问前使用搜索。另外,请通过从头开始创建新示例来减少您的示例,仅使用尽可能少的代码突出一个孤立的问题。不要发布您的开发代码。尝试重现您自己的问题,这对找到解决方案(不仅仅是提出问题)很有帮助。
标签: php html xml xquery domdocument