PHP DOM 文档:如何在 xml 中将节点"default:link"替换或更改为"xhtml:link"?



我试图使用以下代码从标签"xhtml:link"中删除属性"xmlns:xhtml":

源代码:

    $doc = new DOMDocument('1.0', 'utf-8');
    $url = 'android-app://com.domain.name';
    $element = $doc->createElementNS($url,'xhtml:link');
    $attribute = $doc->childNodes->item(0);
    //echo '<br>tag: '.$doc->getElementsByTagName("xhtml:link")[0];
    $element->setAttribute('href', $url);
    $element->setAttribute('rel', 'alternate');
    //echo '<pre>';print_r($element);echo '</pre>';

    $element->hasAttributeNS($url, 'xhtml');
    $element->removeAttributeNS($url, 'xhtml');
    $doc->appendChild($element);
    echo $doc->saveXML();

输出:

    <?xml version="1.0" encoding="utf-8"?>
    <default:link href="android-app://com.domain.name" rel="alternate"/>

但是,我期望输出如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <xhtml:link href="android-app://com.domain.name" rel="alternate"/>

请帮我做什么?在这里,我罢工以替换标签...

谢谢!

尝试createElement函数而不是createElementNS

$doc = new DOMDocument('1.0', 'utf-8');
$url = 'android-app://com.domain.name';
$element = $doc->createElement('xhtml:link');
$attribute = $doc->childNodes->item(0);
$element->setAttribute('href', $url);
$element->setAttribute('rel', 'alternate');
$doc->appendChild($element);
echo $doc->saveXML();

输出:

<?xml version="1.0" encoding="utf-8"?>
<xhtml:link href="android-app://com.domain.name" rel="alternate"/>

最新更新