Zend Config Xml从带有属性的标记中获取值

时间:2012-02-06 14:13:41

标签: xml zend-framework parsing

我有这样的XML:

<?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文件在PHP上使用DOMXML。

1 个答案:

答案 0 :(得分: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>

只有在存在特定语言时才需要值“Some name4”,您可以使用此XML:

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

我认为我更喜欢第一个XML,因为它的通用标签。