我有以下网站地图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