使用DOMDocument创建站点地图,一切正常。现在我想创建多语言。如何在以下代码中创建xhtml:link元素?
<url>
<loc>http://www.ihremusterdomain.de/english/</loc>
<xhtml:link rel="alternate" hreflang="de" href="http://www.ihremusterdomain.de/deutsch/" />
<lastmod>2014-04-15T16:13:34+02:00</lastmod>
<changefreq>daily</changefreq>
</url>
其他元素如url,loc,lastmod和changefreq仍然存在。
答案 0 :(得分:0)
因为节点在XHTML命名空间中,所以您需要使用createElementNS
来添加它:
<?php
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$doc->load('sitemap.xml');
foreach ($doc->getElementsByTagName('loc') as $loc) {
$node = $doc->createElementNS('http://www.w3.org/1999/xhtml', 'xhtml:link');
$node->setAttribute('rel', 'alternate');
$node->setAttribute('hreflang', 'de');
$node->setAttribute('href', str_replace('english', 'deutsch', $loc->textContent));
if ($loc->nextSibling) {
$loc->parentNode->insertBefore($node, $loc->nextSibling);
} else {
$loc->parentNode->appendChild($node);
}
}
$doc->formatOutput = true;
$doc->save('output.xml');
答案 1 :(得分:0)
在C#中,您可以这样做:
var linkElement = document.CreateElement("xhtml:link", "http://www.w3.org/1999/xhtml");
您需要提供完整限定名称以及名称空间uri。