<?xml version="1.0" encoding="windows-1251"?>
<DocROOT>This is the root element!</DocROOT>
XML (DOMDocument)
Код:
$dom = new DOMDocument('1.0', 'windows-1251');
$element = $dom->createElement('DocROOT', 'This is the root element!');
$dom->appendChild($element);
echo $dom->saveXML();
$element = $dom->createElement('DocROOT', 'This is the root element!');
$dom->appendChild($element);
echo $dom->saveXML();
и получаем следующее
Код:
Теперь вношу маленькие изменения:
Код:
$dom = new DOMDocument('1.0', 'windows-1251');
$element = $dom->createElement('DocROOT', 'This is the root element!');
// Добавляем вот эти две строки
$cmds=$dom->createElement('CMDS');
$element->appendChild($cmds);
//
$dom->appendChild($element);
echo $dom->saveXML();
$element = $dom->createElement('DocROOT', 'This is the root element!');
// Добавляем вот эти две строки
$cmds=$dom->createElement('CMDS');
$element->appendChild($cmds);
//
$dom->appendChild($element);
echo $dom->saveXML();
и получаем:
Код:
<?xml version="1.0" encoding="windows-1251"?>
<DocROOT>This is the root element!<CMDS/></DocROOT>
<DocROOT>This is the root element!<CMDS/></DocROOT>
Вроде всё нормально, теперь ещё маленько изменение:
Код:
// Строку $cmds=$dom->createElement('CMDS'); заменяем на:
$cmds=$dom->createElement('CMDS','Hello World');
$cmds=$dom->createElement('CMDS','Hello World');
и в итоге:
Код:
<?xml version="1.0" encoding="windows-1251"?>
<DocROOT>This is the root element!<CMDS>Hello World</CMDS></DocROOT>
<DocROOT>This is the root element!<CMDS>Hello World</CMDS></DocROOT>
Но если заменить 'Hello World' на 'Привет всем', то он обрезает и получается
Код:
<?xml version="1.0" encoding="windows-1251"?>
<DocROOT>This is the root element!<CMDS>
<DocROOT>This is the root element!<CMDS>
Ясно, проблема с кодировками, это полбеды, кстати, а как с этим бороться?
Но тут есть ещё одна проблема, я никак не могу разобраться с объектной моделью. Например appendChild определён только для DOMNode, но используется и в DOMDocument, значит DOMDocument наследуется от DOMNode? Но это очевидные вещи, а как добавить атрибут в элемент? Какая тут объектная модель, какие методы? Куда что возвращается и как сохраняется.
Если кто сталкивался с подобными траблами, не могли бы вы подсказать ресурс в сети, где был бы обзор классов DOM для работы с XML в PHP. Хотя в руководстве это дело и называется DOM Functions, но без знания объектной модели сложно работать.
php.net есть там и такие фунуции!
зайди на
Цитата:
Originally posted by denalta
зайди на php.net есть там и такие фунуции!
зайди на php.net есть там и такие фунуции!
Там я был, кое-как с некоторыми вещами разобрался. Объектной модели нигде не нашёл. Т.е. в мануале есть строки вроде
Код:
DOMElement {
bool setAttribute(string name,
string value);
}
bool setAttribute(string name,
string value);
}
Ну так мне что бы увидеть всю картину целиком прийдётся всё это руками собирать со всего мануала, а тут я могу и ошибится. Кстати, а чё делать с кириллицей?