simple_html_dom найти HTML внутри скрипта

Справочная информация: Мы используем шаблоны руля. Маленькие, которые нужны только один раз, мы вставили внутри скрипта, внутри HTML. HTML предварительно переведен, один раз на выпуске.

Проблема:

С simple_html_dom мы находим все соответствующие тексты. Кроме тех, кто в теге script!

Пример "нормальный"

 <h5 class="ues mt-1">Anmerkung ändern {bezeichnung}</h5>

Пример внутри скрипта

 <script id="template-Liste-Anmerkungen" type="text/x-handlebars-template"> 
     <h5 class="ues mt-1">Anmerkung ändern {bezeichnung}</h5>
 </script>

Мы находим все соответствующие тексты для каждого класса:

$html = new simple_html_dom();   
$html->load($strHTML, true, false);
$HTMLElemente = $html->find('.ues');

Все они найдены, независимо от того, насколько глубоко они переплетены внутри форм и модальностей. Но UES внутри тега script не найдены. Это всегда чистый, чистый HTML, что мы можем сделать?


Да, я нашел похожие вопросы, некоторые не были достаточно задокументированы, ни один не имел соответствующего решения.

1 ответ

Решение

Вы хотите перебирать теги скрипта и загружать содержимое отдельно.

$str = <<<EOF
 <script id="template-Liste-Anmerkungen" type="text/x-handlebars-template"> 
     <h5 class="ues mt-1">Anmerkung ändern {bezeichnung}</h5>
 </script>
EOF;

$doc = str_get_html($str);
foreach($doc->find('script') as $script){
  $sub_doc = str_get_html($script->innertext);
  foreach($sub_doc->find('.ues') as $el){
    echo $el;
  }
}
Другие вопросы по тегам