PHP DOM createElement - разрешить пробелы - PullRequest
3 голосов
/ 18 октября 2010

Как использовать пробелы в createElement при создании XML-файла

Я должен использовать

$main = $doc->createElement("$cname"."Data" );

, где

$cname="Company Name"

Но из-за пробелов в $cname, Я получаю следующую ошибку,

Неустранимая ошибка: необработанное исключение «DOMException» с сообщением «Ошибка недопустимого символа» в file.php: 50 Трассировка стека: # 0 file.php (50):DOMDocument-> createElement ('geosoft company ...') # 1 {main} добавляется в file.php в строке 50

Как это исправить?

С уважением, Реха

1 Ответ

5 голосов
/ 18 октября 2010

Согласно http://www.w3.org/TR/2008/REC-xml-20081126/#NT-NameChar имя элемента может состоять только из следующих символов

NameStartChar :: = ":" |[AZ] |"_" |[az] |[# xC0- # xD6] |[# xD8- # xF6] |[# xF8- # x2FF] |[# x370- # x37D] |[# x37F- # x1FFF] |[# x200C- # x200D] |[# x2070- # x218F] |[# x2C00- # x2FEF] |[# x3001- # xD7FF] |[# xF900- # xFDCF] |[# xFDF0- # xFFFD] |[# X10000- # xEFFFF]NameChar :: = NameStartChar |"-" |""|[0-9] |# xB7 |[# x0300- # x036F] |[# x203F- # x2040]

возможная альтернатива:

$main = $doc->createElement("Data");
$main->setAttribute('origin', $cname);

Вас также могут заинтересовать пространства имен xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...