我正在尝试使用 PHP 的 SimpleXML 和 DOMDocument 生成 Google Merchant RSS Feed。
实际的生成代码是这样的:
$dom = new DOMDocument('1.0', 'utf-8');
$dom->formatOutput = true;
$pRSS = $dom->createElement('rss');
$pRSS->setAttribute('version', '2.0');
$pRSS->setAttribute('xmlns:g', 'http://base.google.com/ns/1.0');
$dom->appendChild($pRSS);
$domnode = dom_import_simplexml($xml);
$domnode = $dom->importNode($domnode, true);
$domnode = $dom->appendChild($domnode);
$dom->save('googleproductfeed.xml');
($xml 包含所有数据,但与我的问题无关)
这一切都生成正常,但这里有一个 XML 错误:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2" xmlns:g="http://base.google.com/ns/1.0"/>
根据 Google Merchant、Google Chrome 和 validome.org 的说法,第二行有错误。更准确地说,Validome 说它不应该以 结尾/>
,而应该只是>
。问题是我无法控制它。该部分由以下人员生成:
$pRSS = $dom->createElement('rss');
$pRSS->setAttribute('version', '2.0');
$pRSS->setAttribute('xmlns:g', 'http://base.google.com/ns/1.0');