Я бы хотел использовать PHP Tidy, чтобы гарантировать, что мой xml действителен, прежде чем загружать его в DomDocument.PHP Tidy удаляет пробелы и вставляет новые строки
Однако, я не хочу Tidy, чтобы изменить что-то к моему форматированию - Я только хочу, чтобы это исправить проблемы, как несбалансированные теги и т.д.
Пример задачи можно увидеть на этой странице: http://www.tek-tips.com/viewthread.cfm?qid=1654452
Мой собственный пример следующий.
Вход: <ex><context>собр<stress>а</stress>ние</context> акцион<stress>е</stress>ров — <stress>aa</stress>ndeelhoudersvergadering</ex>
(который действует XML уже)
Ожидаемый результат: <ex><context>собр<stress>а</stress>ние</context> акцион<stress>е</stress>ров — <stress>aa</stress>ndeelhoudersvergadering</ex>
(есть нарушение пробельные между </context>
и актион
)
Фактический выход:
<ex>
<context>собр
<stress>а</stress>ние</context>акцион
<stress>е</stress>ров —
<stress>aa</stress>ndeelhoudersvergadering</ex>
(она была удалена пробел между </context>
и актион
, который сделает текст нечитаемым, и он вставил новый строки после каждого тега)
Мой код:
function TidyXml($inputXml)
{
$config = array(
'indent' => false,
'output-xml' => true,
'input-xml' => true,
);
$tidy = new tidy();
$tidy->parseString($inputXml, $config, 'utf8');
$tidy->cleanRepair();
$cleanXml = tidy_get_output($tidy);
return $cleanXml;
}
Я попытался изменить несколько вариантов, но это не удалось.
Http: // аккуратным. sourceforge.net/docs/quickref.html#output-xml – hakre
PHP Простой HTML DOM Parser является гораздо более мягким парсером, чем большинство. http://simplehtmldom.sourceforge.net/ – Petah
@hakre Я удалил все настройки, кроме '' input-xml '=> true' (необходимо, потому что иначе он выведет полный HTML-документ). Однако это не помогло. Также я попытался установить '' output-xml '=> false', но это не помогло. Можно ли что-то сделать для предотвращения зачистки/обрезки и форматирования? –