2011-07-26 56 views
1

我想解析下面的XML,但我无法从SimpleXML中检索任何孩子012tencerWhateverItem是第一个元素,它包含一些像whateverItem这样的子元素:Properties,whateverItem:Test等。 应simplexml不返回孩子

$xmlDoc = new SimpleXMLElement($xml); 
var_dump($xmlDoc->children()); 

返回儿童?

<whateverItem:item 
xmlns:prop="http://whatever.de/core/01/properties/" 
xmlns:srel="http://whatever.de/core/01/structural-relations/" 
xmlns:xlink="http://www.w3.org/1999/xlink" 
xml:base="http://mybasewhatever:8080" 
xlink:type="simple" 
xlink:title="My Item Title" 
xlink:href="/ir/item/whatever:1220" 
last-modification-date="2011-07-07T12:52:55.415Z" > 

    <whateverItem:properties  
    xlink:type="simple" 
    xlink:title="Properties" 
    xlink:href="/ir/item/whatever:1220/properties"> 


    <prop:creation-date>2011-07-04T15:17:50.855Z</prop:creation-date> 
    <srel:created-by xlink:type="simple" xlink:title="System Administrator User" xlink:href="/aa/user-account/whatever:exuser1" /> 
    <prop:public-status>released</prop:public-status> 


    <prop:version xlink:type="simple" xlink:title="This Version" xlink:href="/ir/item/whatever:1220:4"> 
     <version:number >4</version:number> 
     <version:date >2011-07-07T12:52:55.415Z</version:date> 
     <version:status >released</version:status> 
     <srel:modified-by xlink:type="simple" xlink:title="System Administrator User" xlink:href="/aa/user-account/whatever:exuser1" /> 
     <version:comment >Status changed to released for Item whatever:1220.</version:comment> 
    </prop:version> 

    <prop:latest-version xlink:type="simple" xlink:title="Latest Version" xlink:href="/ir/item/whatever:1220:4"> 
     <version:number >4</version:number> 
     <version:date >2011-07-07T12:52:55.415Z</version:date> 
    </prop:latest-version> 

    <prop:latest-release xlink:type="simple" xlink:title="Latest public version" xlink:href="/ir/item/whatever:1220:4"> 
     <release:number >4</release:number> 
     <release:date >2011-07-07T12:52:55.415Z</release:date> 
    </prop:latest-release> 
</whateverItem:properties> 
... 
<whateverItem:Test></whateverItem:Test> 
</whateverItem:item> 
+1

我的输出是对象(的SimpleXMLElement)#392(3){ [ “@属性”] =>数组 (1){ [ “最后修改日期”] => 串(24),“2011 -07-07T12:52:55.415Z” } [ “属性”] => 对象(的SimpleXMLElement)#376(0){ } [ “测试”] => 对象(的SimpleXMLElement)#419(0 ){ } } – silex

+0

奇怪的是,我只是获得了@attributes而没有其他东西! –

+1

PHP版本5.3.1,阿帕奇/ 2.2.14,DOM/XML \t启用, DOM/XML API版本\t 20031129, 的libxml版本2.7.3 \t, HTML支持\t启用, XPath支持\t启用, 的XPointer支持\t启用, 模式支持\t启用, RelaxNG支持\t启用,libxml的加载版本\t 20703, libxml的流\t启用,SimpleXML的支持\t启用, 修订\t $修订:281953 $, 架构支持\t已启用 – silex

回答

1

您是否在实际的XML输入中声明了“whateverItem”命名空间?尝试通过xmllint(大多数Linux发行版中的命令行实用程序)运行您的输入,以查看它是否首先遇到任何问题。