SimpleXML загрузка файла при определенных условиях - PullRequest
0 голосов
/ 19 октября 2018

Я использую SimpleXML для загрузки большого количества файлов из каталога.Все файлы имеют одинаковую структуру, с разными значениями, вы можете думать о них как квитанция xml.Чего я хотел бы добиться, так это загрузить файл и отобразить содержимое на основе определенного значения, скажем, имени клиента.Я делаю так:

$files = glob('../my_directory/*.xml');

$customerName = $_GET['customer_name'];

foreach ($files as $value) {
    $xml = simplexml_load_file($value);
    echo"
        <tr>
            <td>" .$xml->Header->Transmission->CustomerName. "</td>
            // and so on......................
        </tr>
    ";
}

Все работает нормально, но, как я уже сказал, я стараюсь отображать содержимое на основе значения $customerName и отображать все данные для этого значения.Я много гуглил, но не нашел никакой помощи.Я пробовал что-то вроде

 if ($xml->Header->Transmission->CustomerName === $customerName) {
      // do something
 }

, но не работает.Есть идеи?

1 Ответ

0 голосов
/ 22 октября 2018

Хорошо, я сдался, но мне удалось решить проблему таким образом (надеюсь, это могло бы помочь кому-то еще):

// select the directory with xml files
$files = glob('../my_directory/*.xml');

// define the data I need 
$customer_name = $_GET['customer_name'];

// load the files
foreach ($files as $value) {
    $xml = simplexml_load_file($value);

    // define the variable with the data I want to check
    $CustomerName = $xml->Header->Transmission->CustomerName;

    // check for the correspondence
    foreach ($CustomerName as $name) {
        if ($name === $customer_name ) {
            echo"
                <tr>
                    <td>" .$xml->Header->Transmission->CustomerName. "</td>
                    // do my stuff here ......................
                </tr>
            ";
        }
    }
}
...