首頁 >後端開發 >php教程 >如何使用 SimpleXML 存取具有命名空間的 XML 元素和屬性?

如何使用 SimpleXML 存取具有命名空間的 XML 元素和屬性?

DDD
DDD原創
2024-12-23 18:49:13971瀏覽

How Can I Access XML Elements and Attributes with Namespaces Using SimpleXML?

在SimpleXML 中使用冒號存取XML 命名空間

XML 命名空間,由標籤和屬性名稱中的冒號指示,允許多種格式的組合在一個文件中。 SimpleXML 提供了一種使用children() 和attributes() 方法存取特定命名空間中的元素和屬性的機制。

命名空間存取問題

嘗試存取元素時或使用SimpleXML 名稱中帶有冒號的屬性,語法->ns:element 或->{'ns: element'} 可能不起作用。冒號表示命名空間,需要使用children()方法暫時切換到該命名空間。

解決方案

存取特定的元素和屬性命名空間:

  • 元素: 使用->> (XMLNS_NAMESPACE) 切換到所需的命名空間。例如,->children(XMLNS_EG1)->list->children(XMLNS_EG2)->item.
  • 屬性: 在以下位置使用 ->attributes(XMLNS_NAMESPACE)兒童()方法。例如,->子項(XMLNS_EG1)->列表->子項(XMLNS_EG2)->項目->屬性(XMLNS_SEQ)->位置。

初始命名空間選擇

載入時也可以指定初始命名空間使用 simplexml_load_string 或 simplexml_load_file 的第四個參數作為 $namespace_or_prefix 的 XML。這消除了對初始child() 調用的需要,例如$sx = simplexml_load_string($xml, null, 0, XMLNS_EG1);.

簡寫表示法(不推薦)

作為簡寫,您可以使用命名空間的本地別名作為children() 中的第二個參數,屬性()。然而,依賴完整的命名空間 URI 是實現一致性和麵向未來的首選方法。

以上是如何使用 SimpleXML 存取具有命名空間的 XML 元素和屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn