|
|
|
| Я написал такой код:
$doc = new DOMDocument('1.0','utf-8');
$prof = $doc->createElement('profile','test');
$form = $doc->createElement('format','test');
$text = $doc->createTextNode ("TextNode");
$doc->appendChild($prof);
$doc->appendChild($form);
$doc->appendChild($text);
echo $doc->saveXML();
|
он выводит:
<?xml version="1.0" encoding="utf-8"?>
<profile>test</profile>
<format>test</format>
TextNode
|
Как мне, вложить одни теги в другие, чтоб получилось следующее:
<?xml version="1.0" encoding="utf-8"?>
<profile>
<format>TextNode</format>
</profile>
|
Лазил по мануалу, но всё равно не понятно, как это сделать и при помощи каких методов DOM, или функций?
И, ещё вопрос как потом получить доступ, например к тегам 'format', и узнать, что в них находится? | |
|
|
|
|
|
|
|
для: Quies
(21.05.2007 в 01:24)
| |
<?
$doc = new DOMDocument('1.0','utf-8');
$prof = $doc->createElement('profile','test');
$form = $doc->createElement('format','test');
$text = $doc->createTextNode ("TextNode");
$prof->appendChild($form);
$prof->appendChild($text);
$doc->appendChild($prof);
echo $doc->saveXML();
|
| |
|
|
|
|
|
|
|
для: Саня
(21.05.2007 в 09:12)
| | Спасибо, правда ваш код выводит немного не то, но суть понятна.
Вот составил результирующий код:
<?
$doc = new DOMDocument('1.0','utf-8');
$prof = $doc->createElement('profile');
$form = $doc->createElement('format');
$text = $doc->createTextNode ("TextNode");
$prof->appendChild($form);
$form->appendChild($text);
$doc->appendChild($prof);
echo $doc->saveXML();
?>
|
А, как получить доступ к содержимому тегов? | |
|
|
|
|
|
|
|
для: Quies
(21.05.2007 в 16:39)
| |
<?
$xml = '<?xml version="1.0" encoding="utf-8"?>
<profile><format>TextNode</format></profile>';
$new = DOMDocument::loadXML($xml);
// вариант 1
$format = $new->childNodes->item(0)->childNodes->item(0);
print $format->nodeValue;
// вариант 2
$format2 = $new->getElementsByTagName("format");
print $format2->item(0)->nodeValue;
|
Вариант 1:
$new->childNodes - этим я получаю список всех корневых тегов
$new->childNodes->item(0) - так как корневой тег только один, то из списка выбираю нулевой эленемт - наш тег <profile>
$new->childNodes->item(0)->childNodes - соответственно получаю список всех дочерних тегов корневого элемента <profile>
$new->childNodes->item(0)->childNodes->item(0) - так как список состоит из одного элемента, то выбираю его...
В переменной $format находится элемент <format>
А потом вывожу в браузер содержимое этого тега: print $format->nodeValue;
Вариант 2:
$format2 = $new->getElementsByTagName("format") - получил список всех тегов <format> в документе
Список, конечно же, состоит из одного элемента.
print $format2->item(0)->nodeValue - выбираю элемент из списка и печатаю его nodeValue | |
|
|
|
|
|
|
|
для: Саня
(21.05.2007 в 20:02)
| | Спасибо, разобрался :) | |
|
|
|