我正在用 PHP 中的 SimpleXML 编写 Google 产品 RSS 提要。我的产品来自数据库并可以很好地创建 RSS 文件,但是在涉及名称空间时遇到了问题。
我在 Google 上搜索并搜索了 Stack Overflow,发现了数十篇关于如何解析包含命名空间的 XML 提要的帖子,但我的问题实际上是使用命名空间创作XML 文件。
文件应该如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<rss version ="2.0" xmlns:g="http://base.google.com/ns/1.0">
<!-- content -->
</rss>
这是我的代码:
<?php
$xml = new SimpleXMLElement('<rss></rss>');
$xml->addAttribute('version', '2.0');
$xml->addChild('channel');
$xml->channel->addChild('title', 'Removed');
$xml->channel->addChild('description', 'Removed');
$xml->channel->addChild('link', 'Removed');
foreach ($products as $product) {
$item = $xml->channel->addChild('item');
$item->addChild('title', htmlspecialchars($product['title']));
$item->addChild('description', htmlspecialchars($product['title']));
$item->addChild('link', $product['url']);
$item->addChild('id', $product['product_id']);
$item->addChild('price', $product['price_latest']);
$item->addChild('brand', $product['range']);
$item->addChild('condition', 'new');
$item->addChild('image_link', $product['image']);
}
如何引入g
命名空间,既是xmlns
根元素中的声明,又是每个元素中、、和rss
的前缀?id
price
brand
condition
image_link
item