SimpleXML方便操作如名所示。 然而它是痛苦,当您需要检查也许或可能不存在元素时的价值。

简而言之使用它的在与可选择元素的XML图解是皇家痛苦。 因为SimpleXML只创造数据存在的对象,您将必须每次写丑恶的代码检查对象的存在您之前通入它的价值。

您不可能通过写便利方法解决它。 让了解问题我们然后将解决它。

好处
SimpleXML非常方便操作。 因为您会访问对象阶层,您访问元素:
$xml->Items [0] - >Request [0] - >Errors [0] - >Error [0] - >Status

问题
SimpleXML创造仅对象有数据的XML元素的(和确实如此)。 这使它高效率。 然而它也使更难使用您的图解什么时候对可选择元素是灵活的。 让采取上述例子。 您不可能安全地访问状态如上所述,如果错误是只存在的一个可选择元素,当有错误时。 并且您不可能检查状态的存在象这样的:
isset ($xml->Items [0] - >Request [0] - >Errors [0] - >Error [0] - >Status)
因为错误可能不存在。 因此发现,如果有任何错误您必须首先检查错误的存在然后状态的存在(可能),在您能实际上检查状态之前。 并且这是可靠对于对象阶层的所有深度。 您能快看到多这藤茎成为主要令人讨厌的人。 并且您是很可能错过一些和导致维护障碍。 代码也是变得unmaintainable。

解答
我的解答将这样情况的使用XPath。 它succintly告诉您可及性和价值(若有)的领域。

结论
与XPath一道的SimpleXML是一个非常强有力的方式处理您的在PHP的XML数据。