PHP 的 SimpleXML 的命名空間陷阱
使用 PHP 的 SimpleXML 解析 XML 文件時,自訂命名空間可能會帶來挑戰。考慮以下具有自訂命名空間的 XML:
<code class="xml"><?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au"> <channel> <item> <link>qweqwe</link> <moshtix:genre>asdasd</moshtix:genre> ...</code>
要存取此類命名空間中的元素,SimpleXML 的預設行為並不簡單。以下是克服這項挑戰的方法:
解決方案:使用帶有命名空間參數的children()
SimpleXML 的children() 方法可讓您根據命名空間過濾元素。將命名空間前綴和true 作為第二個參數傳遞給它,以檢索命名空間資訊:
<code class="php">$rss = simplexml_load_string(...); foreach ($rss->channel as $channel) { echo 'link: ', $channel->link, "\n"; echo 'genre: ', $channel->children('moshtix', true)->genre, "\n"; }</code>
在此範例中,輸出將為:
link: qweqwe genre: asdasd
透過使用此方法,使用PHP 的SimpleXML 解析XML 文件時,您可以有效地存取和利用自訂命名空間中的元素。
以上是如何使用 PHP 的 SimpleXML 存取自訂命名空間中的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!