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

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

Susan Sarandon
Susan Sarandon原創
2024-12-13 13:37:10445瀏覽

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