1
我有一個帶有名稱空間的XML文件,我想用添加更多項目來更新此文件。使用名稱空間前綴更新XML文件
這裏我的XML文件的結構:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns="http://feeds.omgeu.com/ns/1.0/" xmlns:omg="http://feeds.omgeu.com/ns/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<channel>
<item>
<omg:merchantrank>1</omg:merchantrank>
<omg:pid>RBK1444C</omg:pid>
</item>
</channel>
</rss>
這裏我的功能添加項目:
protected function writeFeedAppend($data,$url)
{
set_time_limit(6000);
$bucket = $url;
$doc = new \DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$doc->load($bucket);
$fragment = $doc->createDocumentFragment();
$elementChild = '';
foreach ($data as $feedData)
{
$elementChild .= '<item>';
$elementChild .= '<omg:merchantrank>';
$elementChild .= '1';
$elementChild .= '</omg:merchantrank>';
$elementChild .= '<omg:pid>';
$elementChild .= $feedData['number'];
$elementChild .= '</omg:pid>';
$elementChild .= '</item>';
$elementChild .= "\n";
}
$fragment->appendXML($elementChild);
$doc->documentElement->appendChild($fragment);
$doc->save($bucket);// Save as xml file
}
有了這個功能,我得到了錯誤:警告:DOMDocumentFragment :: appendXML():命名錯誤:尚未定義商戶名稱空間前綴omg
我的問題是如何定義這個名稱空間,所以我可以繼續添加更多的項目到我的XML文件?
希望你們能幫助我。謝謝
https://bugs.php.net/bug.php?id=44773 –
要添加到現有的答案,你應該只是使用DOM函數來創建元素,而不是生成字符串和硬插入它們。 – Evert