2014-06-16 58 views
0

如何爲DOM元素創建多個屬性?使用DOM爲一個元素創建多個屬性

這裏我有一個屬性

$data = $xml->createElement('enclosure', $rssdata["nNr"]); 
$enclosure = $xml->createAttribute('type'); 
$enclosure->value = 'image/jpeg'; 
$data->appendChild($enclosure); 
$item->appendChild($data); 

但我需要兩個屬性,如出口這裏URL

<enclosure type="image/jpeg" url="">1</enclosure> 

回答

1

只需添加三行代碼:

$data = $xml->createElement('enclosure', $rssdata["nNr"]); 

$enclosure = $xml->createAttribute('type'); # creating attribute 1 
$enclosure->value = 'image/jpeg';   # setting value 
$data->appendChild($enclosure);    # adding attribute to element 

$url = $xml->createAttribute('url'); # creating attribute 2 
$url->value = '';      # setting value 
$data->appendChild($url);    # adding attribute to element 

$item->appendChild($data); 

如果你有很多要添加的屬性,則可以考慮創建一個函數來減少代碼重複。

您的變量名稱可能會令人困惑。如果重命名$enclosure$data您的代碼可能變得更清晰,更易於閱讀:

$enclosureElement = $xml->createElement('enclosure', $rssdata["nNr"]); 

$typeAttribute = $xml->createAttribute('type'); # creating attribute 1 
$typeAttribute->value = 'image/jpeg';   # setting value 
$enclosureElement->appendChild($typeAttribute); # adding attribute to element 

$urlAttribute = $xml->createAttribute('url'); # creating attribute 2 
$urlAttribute->value = '';      # setting value 
$enclosureElement->appendChild($urlAttribute); # adding attribute to element 

$item->appendChild($enclosureElement); 
+1

使用' - > createAttribute()''你可以設置'value' - 只需將它作爲第二個參數添加即可。更簡單:使用'setAttribute()'。無需創建一個。 – kaiser

1

只需添加另外一個您添加的第一個的方式。

$urlAttr = $xml->createAttribute('url'); 
... 
1

PHP的DOM擴展,你可以更容易地使用DOMElement::setAttribute方法添加一個或多個屬性的一個DOMElement

話說$enclosureDOMElement在你的問題<enclosure>元素:

$enclosure->setAttribute("type", "image/jpeg"); 
$enclosure->setAttribute("url", ""); 

只是增加你問這兩個屬性。您可以通過這種方式執行一個,兩個或N個屬性。

背景信息:在XML中,一個元素只能有一個具有相同名稱的屬性。

+0

最後一個正確的_和有用的答案:P – kaiser

相關問題