SimpleXML和它的不那么方便操作的对象模型: 问题&解答
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数据。
归档在 标题新闻之下, 怎么对, PHP, 技术笔记, 技术, 网, 网服务 |
|
RSS 2.0 |
Trackback 这篇文章 |
给这篇文章发电子邮件
您可以也喜欢读 |




































2005年11月16日在11:42 pm
[...]一个SimpleXML和它的不那么方便操作的对象模型: 问题&解答” SimpleXML不与PHP 5.x一起使用: 问题&解答2005年11月16日AngsumanChakraborty [...]
2005年11月22日在8:37上午
[...]在谷歌Analytics报告索尼DRM违犯几个开放来源执照,名单从谷歌AdSense的圣诞节愿望的Rootkit,提供技巧并且简化PHP开发商的SimpleXML。 [...]
2005年11月22日在8:42上午
[...]在谷歌Analytics报告索尼DRM违犯几个开放来源执照,名单从谷歌AdSense的圣诞节愿望的Rootkit,提供技巧并且简化PHP开发商的SimpleXML。 [...]
2005年12月19日在2:55上午
[...]在谷歌Analytics报告索尼DRM违犯几个开放来源执照,名单从谷歌AdSense的圣诞节愿望的Rootkit,提供技巧并且简化PHP开发商的SimpleXML。 [...]