Циклический просмотр файлов изображений xml с помощью 'simple xml' php - PullRequest
0 голосов
/ 15 апреля 2020

Гуглил часами и без радости.

Я использую простой xml и выполняю всевозможные запросы к моему xml файлу. Я могу отобразить изображение (1 изображение) в порядке.

Я не могу получить foreach l oop для отображения всех изображений. Ну, я могу, но я использовал [i ++], и он отображал все изображения, но не остановил зацикливание!

Ниже отображаются 2 изображения. Во-первых, чтобы показать 1 * 1 изображение и мое понимание. На втором изображении я хочу, чтобы все циклы происходили.

$reference  = $_POST['varname'];
$xml =  simplexml_load_file('save.xml') or die("can not find file");
$result = $xml->xpath("//property[property_reference='$reference']");
foreach ( $result as $elements){
<img class="card-img-top" height='240px' width='340px' src=" <?php echo 
$elements->pictures->picture[0]->filename  ; ?> " alt="Card image cap"    > 
} ;  
<br>
<?php foreach( $elements as $image) { ?>
<img class="card-img-top" height='240px' width='340px' src=" <?php echo 
$elements->pictures->picture[All of the images]->filename ; ?> " alt="Card image cap"> }?> 

1 Ответ

1 голос
/ 15 апреля 2020

Похоже, вам нужно на * oop глубже в вашей структуре, поскольку у вас есть массив массива массива.

Решение 1: l oop глубже

<?php

$reference  = $_POST['varname'];
$xml = simplexml_load_file('save.xml') or die("can not find file");
$result = $xml->xpath("//property[property_reference='$reference']");
foreach ($result as $elements) {
    foreach ($elements as $pictures) {
        foreach ($pictures as $picture) { ?>
            <img class="card-img-top" height='240px' width='340px' src="<?php echo $picture->filename?> " alt="Card image cap"> 
        <?php }
    }
}

Решение 2: используйте более глубокий XPath:

<?php

$reference  = $_POST['varname'];
$xml = simplexml_load_file('save.xml') or die("can not find file");
$pictures = $xml->xpath("//property[property_reference='$reference']/pictures");
foreach ($pictures as $picture) { ?>
    <img class="card-img-top" height='240px' width='340px' src="<?php echo $picture->filename?> " alt="Card image cap">
<?php }
...