Php 使用DOM为一个元素创建多个属性

Php 使用DOM为一个元素创建多个属性,php,xml,dom,Php,Xml,Dom,如何为DOM元素创建多个属性 这里我有一个属性 $data = $xml->createElement('enclosure', $rssdata["nNr"]); $enclosure = $xml->createAttribute('type'); $enclosure->value = 'image/jpeg'; $data->appendChild($enclosure); $item->appendChild($data); 但是我需要两个属性,比如UR

如何为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

只需按照添加第一个的方式添加另一个即可

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

只需按照添加第一个的方式添加另一个

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

只需再添加三行:

$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);

只需再添加三行:

$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);

使用PHP的DOM扩展,您可以通过使用
domeElement::setAttribute
方法更轻松地向domeElement添加一个或多个属性

表示
$enclosure
是您问题中
元素的
doElement

$enclosure->setAttribute("type", "image/jpeg");
$enclosure->setAttribute("url", "");
只需添加您要求的这两个属性。您可以通过这种方式执行一个、两个或N个属性

背景信息:在XML中,元素只能有一个同名属性


使用PHP的DOM扩展,您可以通过使用
domeElement::setAttribute
方法更轻松地向domeElement添加一个或多个属性

表示
$enclosure
是您问题中
元素的
doElement

$enclosure->setAttribute("type", "image/jpeg");
$enclosure->setAttribute("url", "");
只需添加您要求的这两个属性。您可以通过这种方式执行一个、两个或N个属性

背景信息:在XML中,元素只能有一个同名属性

使用
->createAttribute()
也可以设置
——只需将其添加为第二个参数即可。更简单的方法是:使用
setAttribute()
。无需创建一个。使用
->createAttribute()
也可以设置
——只需将其添加为第二个参数即可。更简单的方法是:使用
setAttribute()
。最后一个正确而有用的答案:P最后一个正确而有用的答案:P