存取SimpleXML 中的XML 命名空間
XML 命名空間是一種將多個XML 格式合併到單一文件中同時保留其各自來源的方法。 XML 命名空間由冒號分隔的一對定義,其中包含指示本機命名空間的前綴和標識命名空間的統一資源識別碼 (URI)。
為什麼問題中的程式碼不起作用?
存取範例中的命名空間元素(即 ->ns2:item)的初始嘗試失敗,因為 SimpleXML 期望使用children()和attributes()方法定義命名空間。
存取SimpleXML 中的命名空間
SimpleXML 提供了兩種處理命名空間的方法:
使用命名空間的程式碼處理
這是程式碼的修正版本:define('XMLNS_EG1', 'http://example.com'); define('XMLNS_EG2', 'https://namespaces.example.org/two'); define('XMLNS_SEQ', 'urn:example:sequences'); foreach ($sx->children(XMLNS_EG1)->list->children(XMLNS_EG2)->item as $item) { echo 'Position: ' . $item->attributes(XMLNS_SEQ)->position . "\n"; echo 'Item: ' . (string)$item . "\n"; }或者,您可以在使用simplex_load_string9_load等函數的$namespace_or_prefix 參數載入文件時指定初始命名空間。
注意:建議使用完整的命名空間 URI 而不是前綴,因為前綴可能會更改,可能會破壞您的程式碼。
以上是如何使用SimpleXML正確存取XML命名空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!