2012-02-06 2 views
0

У меня есть XML, как это:Zend_Config_Xml получить значение из тега с atributes

<?xml version="1.0"?> 
<configdata> 
<data> 
<data_name lang="en">Some name4</data_name> 
</data> 
</configdata> 

Для синтаксического анализа я использую Zend_Config_Xml:

$config = new Zend_Config_Xml($dir.$file,'data'); 

Затем преобразовать данные в массив:

print_r($config->toArray()); 

Но по результату я не вижу значения из тега data_name Я вижу только атрибут lang. Как получить значение из тега? Возможно ли, или, возможно, я должен проанализировать XML-файл, используя DOMXML на PHP.

ответ

0

Я тестировал ваш код и, действительно, я не мог получить «Some name4». После некоторого чтения на http://framework.zend.com/manual/en/zend.config.adapters.xml.html кажется, что вы не можете легко смешивать атрибуты и теги. Так что, если вы с, чтобы получить как язык и название: Я сделал это XML:

<?xml version="1.0"?> <configdata> 
    <data> 
     <data_name> 
      <name>Some name4</name> 
      <lang>en</lang> 
     </data_name> 
    </data> </configdata> 

Если вы хотите, значение «Некоторые Name4» только тогда, когда есть конкретный язык, вы можете использовать этот XML:

<?xml version="1.0"?> <configdata> 
<data> 
    <data_name> 
     <en> 
      <name>Some name4</name> 
     </en> 
    </data_name> 
</data> </configdata> 

Я думаю, что я предпочитаю первый XML из-за его общих тегов.

+0

Спасибо за ссылку, но если я не ошибаюсь, если бы использовал DOM, я мог бы смешивать атрибуты со значениями в тег. – Evgeniy

+0

Это возможно. К сожалению, мне приходится сталкиваться с DOMXML. – koko

+0

У меня есть exp с DOMXML. Спасибо за ответ. – Evgeniy

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