使用simpleXmlElement,需要向元素添加3个属性,并且输出元素缺少名称空间

时间:2018-01-23 12:01:22

标签: php xml

我正在使用php SimpleXMLElement构建一个xml站点地图,我有两个问题。

当我使用多语言域时,我需要包含hreflang元素,请参阅https://support.google.com/webmasters/answer/2620865?hl=en以供参考。

此元素有3个属性' rel',' href' &安培; '的hreflang'

我们如何设置此元素并向其添加自定义值?

//示例

foreach($array as $value ){

     $item->addChild('xhtml:link' , '//takes no value');

     // needed output
     <xhtml:link href="http://www.example.com/path-to-file" hreflang="de" rel="alternate"/>

}

使用时也是

->addChild('xhtml:link')

将输出

 <link/> 

 and NOT 

 <xhtml:link/>

是的,我正在使用正确的urlset属性(xmlns:xhtml =&#34; http://www.w3.org/1999/xhtml")。

1 个答案:

答案 0 :(得分:0)

使用addChild()添加新元素时,命名空间有第三个参数。您还可以使用 - addAttribute()添加属性。所以创建元素,然后一次添加一个属性......

foreach($array as $value ){
     $newElement = $item->addChild('link' , '//takes no value', 'xhtml');
     $newElement->addAttribute( "href", "http://www.example.com/path-to-file");
     $newElement->addAttribute( "hreflang", "de");
     $newElement->addAttribute( "rel", "alternate");
     // needed output
     //<xhtml:link href="http://www.example.com/path-to-file" hreflang="de" rel="alternate"/>

}