首頁 > 後端開發 > php教程 > 如何存取 SimpleXML 中連字符的節點名稱?

如何存取 SimpleXML 中連字符的節點名稱?

Susan Sarandon
發布: 2024-12-13 13:37:10
原創
528 人瀏覽過

How to Access Hyphenated Node Names in SimpleXML?

具有連字符名稱的SimpleXML 讀取節點

在XML 中,可以在節點名稱中使用連字符以提高可讀性。但是,當使用 SimpleXML 解析 XML 文件時,這些連字符名稱可能會帶來挑戰。

問題

當嘗試使用 SimpleXML 存取具有連字符名稱的節點時,使用者可能會遇到錯誤或不正確的結果。例如,使用以下XML:

<gnm:Workbook xmlns:gnm="http://www.gnumeric.org/v10.dtd" ...>
  <office:document-meta ...>
    ...
  </office:document-meta>
</gnm:Workbook>
登入後複製

嘗試使用標準語法存取「文檔元」節點:

$docMeta = $officeXML->document-meta;
登入後複製

會導致錯誤或不正確的整數值.

解決方案

正確存取節點SimpleXML中的連字符名稱,將節點名稱括在大括號中:

$docMeta = $officeXML->{'document-meta'};
登入後複製

此語法指示 SimpleXML 將連字符名稱視為字串,並按其特定名稱查找節點。

屬性存取

請注意,此花括號語法僅在存取時才需要元素節點。可以使用標準陣列表示法存取具有連字符名稱的屬性:

$attribute = $node['hyphenated-attribute'];
登入後複製

替代方法

如果不首選花括號語法,則可以使用另一種方法以下表示法:

$docMeta = $officeXML->{'office:document-meta'};
登入後複製

此明確名稱空間聲明可確保SimpleXML搜尋

結論

透過使用大括號或明確命名空間聲明,使用者可以使用 SimpleXML 成功讀取 XML 文件中帶有連字符名稱的節點。

以上是如何存取 SimpleXML 中連字符的節點名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板