[英]Load tag file xml PHP
我有一個XML文件,想獲取<arquivo>
標記中的值,
<Listings>
<Listing>
<id>1</id>
<endereco>abc</endereco>
<Media>
<foto>
<arquivo>foto1.jpg</arquivo>
</foto>
<foto>
<arquivo>foto2.jpg</arquivo>
</foto>
</Media>
</Listing>
<Listing>
<id>2</id>
<endereco>rua X</endereco>
<Media>
<foto>
<arquivo>...</arquivo>
</foto>
<foto>
<arquivo>...</arquivo>
</foto>
</Media>
</Listing>
</Listings>
但我不確定我的PHP有什么問題
$listings = simplexml_load_file("file.xml");
foreach ($listings as $listing):
echo 'endereco: ' . trim($listing->endereco) . "<br>";
foreach($listing->Media as $items):
foreach($items as $item):
echo 'Image: ' . trim($item) . "<br>";
endforeach;
endforeach;
endforeach;
我的代碼的結果是
endereco: abc
Imagem:
Imagem:
endereco: rua X
Imagem:
Imagem:
但我希望是
endereco: abc
Imagem: foto1.jpg
Imagem: foto2.jpg
endereco: rua X
Imagem: ...
Imagem: ...
您需要像對enderco
一樣輸入結構的每個級別。 看一眼:
$x = new simplexmlelement('<Listings>
<Listing>
<id>1</id>
<endereco>abc</endereco>
<Media>
<foto>
<arquivo>foto1.jpg</arquivo>
</foto>
<foto>
<arquivo>foto2.jpg</arquivo>
</foto>
</Media>
</Listing></Listings>');
foreach ($x as $listing):
echo 'endereco: ' . trim($listing->endereco) . "<br>";
foreach($listing->Media as $items):
foreach($items->foto as $foto):
echo 'Image: ' . trim($foto->arquivo) . "<br>";
endforeach;
endforeach;
endforeach;
在根元素周圍使用foreach循環,然后使用XPath查詢來更輕松地訪問內部元素。 它有兩個foreach循環,仍然很笨拙,但是應該可以正常工作。
<?php
$listings = simplexml_load_file("file.xml");
foreach ($listings as $listing) {
echo "endereco: $listing->endereco<br/>";
$arquivos = $listing->xpath("Media/foto/arquivo");
foreach ($arquivos as $ar) {
echo "Imagem: $ar<br/>";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.