2015-03-27 8 views
0

Я использую xml_writer для создания xml-файлов в моем проекте CI. я получить коды отPHP: xml_writer, не может использовать setAttribute для Rootname

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..........'));

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

ответ

1

Библиотека, которую вы используете для создания 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 по себе уже довольно прямо вперед.