簡體   English   中英

simplexml_load_file 多個等於節點

[英]simplexml_load_file multiple equals nodes

我有這個 XML:

<user>
    <name>Name</name>
    <jobs>Job 1</jobs>
    <jobs>Job 2</jobs>
</user>

我以這種方式讀取文件:

$xml = simplexml_load_file($file->getRealPath());

我可以通過以下方式獲取名稱屬性:

(string) $xml->name

但如果我試試這個:

$jobs = $xml->jobs

我的$jobs變量中只有一份工作

如何更改我的代碼以從 xml 獲取所有作業?

SimpleXML 中的$xml->jobs$xml->jobs[0] - 也就是說,它只是為您提供具有該名稱的第一個元素。 它讓您可以執行“簡單”的操作,例如$xml->node1->node2->node3->etc以快速深入到文檔中。

如果你想遍歷所有同名的節點,那么你可以使用標准的foreach循環(因為它們實現了 PHP 的Traversable接口):

foreach ($xml->jobs as $job) {
  // do something...
}

或者,如果您只想將整個節點集合作為數組獲取(例如,為了將它們傳遞給另一個函數),您可以使用xpath方法按名稱搜索節點(除其他外):

$jobs = $xml->xpath('jobs');

https://3v4l.org/9lcio

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM