Форматирование отображения XML

#php #html #xml

#php #HTML #xml

Вопрос:

У меня есть функция, которая генерирует XML из источника. Однако он отлично работает, когда определенные поля длинные. Это растягивает таблицу вправо и разрушает форматирование веб-сайта. Есть ли способ, возможно, вставить разрывы строк после определенного объема текста или сохранить его в табличном пространстве?

Функция для кода:

 function generateXML($mlsID, $xmlLocation) {

if (file_exists($xmlLocation)) {
    $simpleXMLobject = simplexml_load_file($xmlLocation);
    if (!$simpleXMLobject) {
        echo 'ERROR: unable to parse XML file';
        exit;
    }

    $mlsIdWasLocatedInXMLfile = false;
    foreach ($simpleXMLobject->Listing as $listing) {
        if ($listing->ListingDetails->MlsId == $mlsID) {
            $mlsIdWasLocatedInXMLfile = true;
            //echo '<table width ="500" style="table-layout:fixed" >';
            $dom = new DOMDocument('1.0');
            $dom->preserveWhiteSpace = false;
            $dom->formatOutput = true;
            $dom->loadXML($listing->asXML());
            echo("<pre>" . htmlspecialchars($dom->saveXML()) . "</pre>");
            //echo '</table>';
        }
    }
    if ($mlsIdWasLocatedInXMLfile === false) {
        echo "MLS ID NOT FOUND IN XML FILE";
    }
} else {
    echo 'ERROR: file not found';
}
}
 

Комментарии:

1. Возможно, какой-нибудь css с максимальной шириной и переполнением: прокрутка?

Ответ №1:

Ну, вы не должны форматировать выходные данные, так как иногда это не имеет смысла. Лучше измените свой веб-сайт — сделайте элемент, в котором вы показываете свою информацию, прокручиваемым.

Если вам нужно выполнить перенос слов, попробуйте использовать эту функцию: wordwrap

Комментарии:

1. Как я могу включить wordwrap в xml? Можете ли вы привести пример?

2. Хорошо заменить ваш вывод на echo(«<pre>» . htmlspecialchars(wordwrap($dom-> saveXML(), 500, «<br />»)) . «</pre>»); должен выполнить эту работу

3. Я пробовал этот код, но он по-прежнему распространяется по всему экрану. Я даже сделал экстремальное число, например, 50 вместо 500.

4. О, моя ошибка. Вы выполняете htmlspecialchars, который удаляет теги <br> . Переключите htmlspecialchars и порядок функций wordwrap, тогда он должен работать

5. Ого! лол. Теперь я тоже это понимаю. Спасибо, что сработало отлично.