В этом одном угловом случае:
str_replace("&", "&", $xml);
заставил бы его разобраться должным образом.К сожалению, если у вас больше или меньше знака «unescaped»:
<?xml version="1.0" encoding="ISO-8859-1"?>
<node>
<test>Oh my < Goodness </test>
</node>
A str_replace
не сработает.Теперь вы можете выполнить регулярное выражение, чтобы проверить что-то вроде <[a-zA-Z]
, но есть:
<?xml version="1.0" encoding="ISO-8859-1"?>
<node>
<test>Oh my<Goodness </test>
</node>
Так что это, в основном, снизит ваши шансы на использование регулярного выражения.
Я пытался разобратьваш XML с SimpleXML, DOM, XmlReader, и попытался несколько свойств libxml, и ничего не сработало.
Короче говоря, шансы против вас.Ваш провайдер должен сгенерировать правильный XML.