我有以下網站地圖XML,其中包含要提交給搜索引擎的URL列表。我從另一個SO答案中獲取了這個示例代碼。如何用PHP XML讀寫器更新這個xml文件?
// Init XMLWriter
$writer = new XMLWriter();
$writer->openURI(APPLICATION_PATH . '/sitemap.xml');
// document head
$writer->startDocument('1.0', 'UTF-8');
$writer->setIndent(4);
$writer->startElement('urlset');
$writer->writeAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
// Write something
// this will write: <url><loc>some url here; SO not allowed me</loc></url>
$writer->startElement('url');
$writer->writeElement('loc', 'some url here; SO not allowed me');
$writer->endElement();
// end urlset
$writer->endElement();
// end document
$writer->endDocument();
此代碼使用XML編寫器創建新的站點地圖。我想用的XMLReader
$reader = new XMLReader();
if (!$reader->open('sitemap.xml')){
die("Failed to open 'sitemap.xml'");
}
while($reader->read()){
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'urlset') {
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('url');
$writer->writeElement('loc', 'http://www.test.com');
$writer->endElement();
break;
}
}
$reader->close();
我找不到有關如何使用的XmlReader更新XML文件正確的樣本,以新的URL附加到現有網址設定。我怎樣才能重寫這段代碼,以便使用XMLreader將新的URL追加到url set標籤中?
編輯1:
我有這樣的XML網站地圖,
<?xml version="1.0" encoding="UTF-8"?>
<urls>
<url>
<loc>http://www.bbc.com</loc>
</url>
</urls>
我希望程序在網址標籤像這樣如增加一個新的URL。添加URL google.com,
<?xml version="1.0" encoding="UTF-8"?>
<urls>
<url>
<loc>http://www.bbc.com</loc>
</url>
<url>
<loc>http://www.google.com</loc>
</url>
</urls>
我怎麼能得到這個功能,或者是有一些其他傭工喜歡DOM文檔或simplexml的做,在PHP?任何對其他網站的引用也是受歡迎的。
我需要使用XMLReader打開sitemap.xml,創建新的url列表並追加到現有的urlset,然後保存XML文件並關閉連接。 – webblover 2014-11-01 18:08:24
您可以編輯您的問題以澄清位。 – Flexo 2014-11-02 00:05:17
也許,但你只是發表評論,而不是進行編輯。 – Flexo 2014-11-02 04:15:53