我正在实现一个小事件管理器以使用观察者模式。为了让我的观察者订阅我的事件,我使用了以下 xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configData>
<subscriptions>
<subscription>
<eventName>event_name</eventName>
<class>My_Observer_Class</class>
<function>myFunction</function>
</subscription>
<subscription>
<eventName>other_event_name</eventName>
<class>My_Observer_Otherclass</class>
<function>myOtherFunction</function>
</subscription>
</subscriptions>
</configData>
我正在使用 aforeach
循环订阅:
foreach($subscriptions->subscription as $subscription) {
/* using $subscription->eventName etc... */
}
一切都很好,每个$subscription
项目都有它eventName
等等......
但是我的问题来了:
<?xml version="1.0" encoding="UTF-8"?>
<configData>
<subscriptions>
<subscription>
<eventName>event_name</eventName>
<class>My_Observer_Class</class>
<function>myFunction</function>
</subscription>
</subscriptions>
</configData>
这里我只有一个 <subscription>
节点。还有我foreach
对subscription
孩子们的循环!为了解决这个问题,我想知道如何检查xml文件是否包含多个<subscription>
标签,或者只有一个......
任何帮助将不胜感激 :)
编辑:有没有办法xpath
和我一起使用Zend_Config_Xml object
?