xml — PHP: xml_writer, нельзя использовать setAttribute для Rootname

Я использую xml_writer для создания XML-файлов в моем проекте CI. я получаю коды от

https://github.com/sandeepeecs/MyDiscountBay.com/blob/master/system/application/controllers/android.php

а также

https://github.com/accent-interactive/xml_writer/blob/master/application/controllers/xml.php

я уже создал XML-файлы с данным кодом успешно. в коде Rootname задается

$xml->setRootName('Submission');

здесь я столкнулся с проблемой, в которой я хочу добавить некоторые атрибуты в Rootname, как

$xml->setAttribute( my_store,array('xmlns:tns' => 'http://somelink..........'));

итоговый xml файл выглядит так (пример)

<Submission xmlns:tns="http://somelink.....">
<Header>
<uid>66166</uid>
</Header>
</Submission>

я уже пробовал

$xml->setRootName('Submission',array('xmlns:tns' => 'http://somelink..........'));

но без положительных результатов. ? Как я могу достичь этого? Любая помощь по этой проблеме будет принята с благодарностью.

0

Решение

Библиотека, которую вы используете для создания XML, не позволяет вам указывать атрибуты элемента документа.

Поэтому вы используете не тот инструмент для работы.

Вы, вероятно, хотите просто использовать XMLWriter непосредственно:

// initialize the writer
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->setIndentString('  ');
$writer->startDocument();

// create the document
$writer->startElement('Submission');
$writer->writeAttribute('xmlns:tns', 'http://somelink..........');

$writer->startElement('Header');

$writer->startElement('uid');
$writer->writeRaw('66166');
$writer->endElement();

// finalize the document and output
$writer->endDocument();
echo $writer->flush();

Выход:

<?xml version="1.0"?>
<Submission xmlns:tns="http://somelink..........">
<Header>
<uid>66166</uid>
</Header>
</Submission>

Как вы видете XMLWriter сам по себе уже довольно прост.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]