在 SimpleXML 中处理自定义命名空间
问题:
在具有自定义的 XML 文档中名称空间,SimpleXML 解析无法公开该名称空间中的元素。如何解决这个问题?
答案:
要使用 SimpleXML 访问自定义命名空间元素,需要注册并使用命名空间前缀。这通常是使用 Children() 函数来实现的,其中名称空间前缀作为第一个参数,true 作为第二个参数以启用递归匹配:
<code class="php">$rss = simplexml_load_string( '<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au"> <channel> <link>qweqwe</link> <moshtix:genre>asdasd</moshtix:genre> </channel> </rss>' ); foreach ($rss->channel as $channel) { echo 'link: ', $channel->link, "\n"; echo 'genre: ', $channel->children('moshtix', true)->genre, "\n"; }</code>
这将输出:
link: qweqwe genre: asdasd
通过注册命名空间前缀,可以访问自定义命名空间元素并使用children()检索它们的值。
以上是如何使用 SimpleXML 访问自定义命名空间中的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!