SimpleXML无法访问所有属性

时间:2019-05-07 13:33:23

标签: php simplexml

我有这个XML(这只是一个示例):

<?xml version="1.0" encoding="UTF-8"?>
<nodes xmlns:j="http://www.jahia.org/jahia/1.0"
    <child j:lastPublished="2014-04-09T10:06:29.275+02:00"
        j:published="true"
        jcr:created="2014-04-07T11:55:18.013+02:00"
        jcr:createdBy="test_user_123"
        jcr:mixinTypes="jmix:accessControlled">
        <j:item content="Lorem Ipsum"
            j:published="true"
            jcr:language="en"
            jcr:lastModified="2014-04-07T11:55:18.669+02:00"
            jcr:title="Title text"/>
    </child>
</nodes>

我使用simplexml_load_string方法来加载文件的内容,然后遍历每个孩子。问题是,例如,当我想使用$child->attributes()['published']获取任何属性时,我没有问题,但是当我尝试访问任何基于jcr的属性(如标题,语言)时,我得到了{ {1}}。简而言之,我无法访问前缀为NULL的任何属性。

以下是上述文本的示例:

jcr

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为是因为您不必键入项目对象。 文档中的每个元素都在dom上下文中建立索引,如果我们不在foreach内部,则使用item(id)进行获取。