Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Создание атрибута на PHP (DOM) (http://forum.oszone.net/showthread.php?t=239268)

dmit.medv 25-07-2012 10:55 1958339

Создание атрибута на PHP (DOM)
 
Здравствуйте!
Подскажите пожалуйста, можно ли создать атрибут элемента одной строкой.
Сейчас я создаю так:

Код:

$xml=new DomDocument('1.0','utf-8');        // Создание XML-документа

$TK = $xml->appendChild($xml->createElement('TK'));                // Создание корня

// добавление атрибута элементу
$tk_attr1 = $xml->createAttribute('name');  // строка 1
$tk_attr1->value = 'Мега'; // строка 2
$TK->appendChild($tk_attr1); // строка 3

можно ли как нибудь добавить атрибут одной строкой?
приблизительно так: $TK->appendChild("тут создание атрибута"); // в итоге - одна строка

Предложите свои способы. Спасибо.

Habetdin 25-07-2012 12:04 1958390

Можно создать функцию, которая будет делать то же, что и те 3 строки (в примере - appendAttribute):
Код:

<?php
$xml=new DomDocument('1.0','utf-8');        // Создание XML-документа

$TK = $xml->appendChild($xml->createElement('TK'));                // Создание корня

function appendAttribute($doc, $element, $attrName, $attrVal)
{
        $attr = $doc->createAttribute($attrName);
        $attr->value = $attrVal;
        $element->appendChild($attr);
}

appendAttribute($xml, $TK, 'name1', 'Мега');
appendAttribute($xml, $TK, 'name2', 'Гига');

echo $xml->saveXML();

Цитата:

Цитата Вывод
<?xml version="1.0" encoding="utf-8"?>
<TK name1="Мега" name2="Гига"/>


dmit.medv 25-07-2012 12:47 1958411

Огромное спасибо! а еще программистом называюсь, не мог додуматься до такого простого решения )

dmit.medv 26-07-2012 11:13 1959106

Способ без создания доп.функции:

Код:

$TK->appendChild($xml->createAttribute('name'))->appendChild($xml->createTextNode('Мега-Гига'));


Время: 17:55.

Время: 17:55.
© OSzone.net 2001-