проблема с созданием XML

yuran

Новичок
Добрый день! Второй день бьюсь. В документации написано, что метод addChild может принимать один аргумент. Привожу код. Версия PHP 5.2.14. Если использую два аргумента, то все работает нормально, но я хотел бы создать пустую ветку XML.
PHP:
<?php

$xml = simplexml_load_file("new_user.xml");
$sxe = new SimpleXMLElement($xml->asXML());
$string='item';
$sxe->addChild($string) or die("error"); /// выдает ошибку

?>
XML код:
<?xml version="1.0" encoding="UTF-8"?>
<order>

</order>
 

yuran

Новичок
Ну так не пиши
PHP:
 or die("error")
Спасибо, огромное! Даже стыдно, что два дня пропсиховал из-за незнания таких элеметарных вещей. Может за одно подскажете, какую лучше кодировку XML использовать для кириллици. Везде по-разному пишут, где то читал, что еще и нужно сам файл в нужной кодировке сохранять, чтобы корректно читался.
 

fixxxer

К.О.
Партнер клуба
Спасибо, огромное! Даже стыдно, что два дня пропсиховал из-за незнания таких элеметарных вещей.
Кажется, тут требуется пояснение =)

http://ru.php.net/manual/en/simplexmlelement.addchild.php
The addChild method returns a SimpleXMLElement object representing the child added to the XML node.
PHP:
fixxxer@mbp ~/tmp$ cat test.php 
<?php

$S = simplexml_load_string('<root/>');
$Child = $S->addChild('foo');
var_dump($Child);
var_dump( (bool) $Child );
Код:
fixxxer@mbp ~/tmp$ php test.php 
object(SimpleXMLElement)#2 (0) {
}
bool(false)  // что вполне логично - пустой же.
 

yuran

Новичок
shelestov, fixxxer, спасибо! Я просто никогда не задумывался над функцией die. Увидел, что ее часто используют в видео-туториалах - вот и начал ее толкать везде. Думал так будет легче отслеживать ошибки. А по кодировке, видел, что есть вариант кодировки utf-8 и utf-8 без BOM. Что лучше выбирать?
 

shelestov

я тут часто
shelestov, fixxxer, спасибо! Я просто никогда не задумывался над функцией die. Увидел, что ее часто используют в видео-туториалах - вот и начал ее толкать везде. Думал так будет легче отслеживать ошибки. А по кодировке, видел, что есть вариант кодировки utf-8 и utf-8 без BOM. Что лучше выбирать?
Многие программы Windows (включая Блокнот) добавляют байты 0xEF, 0xBB, 0xBF в начале любого документа, сохраняемого как UTF-8. Это метка порядка байтов Юникода (англ. Byte Order Mark, BOM), также её часто называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). По наличию сигнатуры программы могут автоматически определить, является ли файл закодированным в UTF-8, однако файлы с такой сигнатурой могут некорректно обрабатываться старыми программами, в частности xml-анализаторами. Такие редакторы, как Notepad++, Notepad2 и Kate позволяют явно указывать, следует ли добавлять сигнатуру при сохранении UTF-файлов.

Из википедии :)
 

yuran

Новичок
shelestov, спасибо. Просто навеяло тем, что у меня Опера не хочет xml файл открывать, когда я в него значения кириллицей занесу. Но это по-моему неважно, главное php правильно понимает разметку и флэш вроде тоже на xml не ругается. Спасибо еще раз большое, пойду творить код дальше. Тему наверно можно закрывать.
 
Сверху