2013-04-02 2 views
1

У меня есть XML-ответ с сервера, но у них нет корневого элемента, из-за этого я не могу разобрать их с помощью SimpleXML, поэтому Мне нужно, чтобы создать корневой элемент, а затем добавить все эти XML в этом один созданный корневой элементSimpleXml как добавить существующий XML в новый созданный корневой элемент

$res = bill_curl('GetAccounts'); //getting a list of accounts WITHOUT the <root> xml 
$xml = new SimpleXMLElement("<root></root>"); // creating a root element 
$xml->addChild($res); // adding to the <root> childrens 

но проблема:

1) "<!--?xml version="1.0" encoding="UTF-8"?-->" остается внутри и то же самое в верхней части документ

2) получил некоторые символы, такие как «< "," /> "как их удалить?

Обновлено:

<document> 
       <answer> 
      <account>12345678</account> 
      <info>someinfo</info> 
      </answer> 
      <answer> 
      <account>23456789</account> 
     <info>some info</info> 
      </answer> 
    </document> 

это то, что я получил после манипуляций со строками, то я делаю:

$xml = new SimpleXMLElement($str); 

и здесь я получаю ошибку начала и окончания метки несовпадающих, какие Мне здесь не хватает?

ответ

0

Я не особенно увлечен хрупкостью этого решения. Тем не менее, это звучит, как вы, вы интегрирующие против порочной API, поэтому я хотел бы предложить некоторые основные манипуляции со строками, чтобы получить то, что вы хотите:

$str = '<?xml version="1.0" encoding="UTF-8"?><testing>2</testing><test2>1</test2>'; 
// the above was a test string to represent the results of the below: 
$str = bill_curl('GetAccounts'); 

// Switch the search string below with the actual doctype you're getting from the API. 
// It looks to have been commented out in your question which may or may not be the case. 
$str = str_replace('<?xml version="1.0" encoding="UTF-8"?>', '', $str); 
$str = '<root>'.$str.'</root>'; 

$xml = new SimpleXMLElement($str); 
var_dump($xml); 
+0

я попробовал ваш код, и теперь у меня есть это " Открытие и окончание тегов несоответствие: строка документа 1 и xml « – Hello

+0

Вам нужно опубликовать XML-строку, которую вы получаете от вашего API (за вычетом любых конфиденциальных данных, конечно!) – bcmcfc

+0

посмотреть, я обновил код – Hello

Смежные вопросы