У меня есть какие-то ... XML-документа, как показано ниже:PHP, регулярное выражение, XML
<file src="136090000-136100000">
<member id="136090000">
<Name>
<![CDATA[DOSEKUN DANIEL ADETUNJI]]>
</Name>
<Email>
<![CDATA[[email protected]]]>
</Email>
<DateRegistration>
<![CDATA[10/19/2010 8:46:57 PM]]>
</DateRegistration>
</Member>
<usafisMember id="136090001">
<Name>
<![CDATA[yoleida colina]]>
</Name>
<Email>
<![CDATA[[email protected]]]>
</Email>
<DateRegistration>
<![CDATA[10/19/2010 8:47:08 PM]]>
</DateRegistration>
</usafisMember>
<usafisMember id="136090002">
<Name>
<![CDATA[Homero Valdovinos]]>
</Name>
<Email>
<![CDATA[[email protected]]]>
</Email>
<DateRegistration>
<![CDATA[10/19/2010 8:47:01 PM]]>
</DateRegistration>
</Member>
Мне нужно извлечь ID пользователя, имя, адрес электронной почты и DateRegistration, но как вы можете видеть, что XML не является очень хорошо отформатирован. Я пробовал с простым xml, который, очевидно, не работает, но нижнее регулярное выражение не работает. Вот образец, который я попробовал:
$pattern = "/<Name><\\!\\[CDATA\\[(.*)\\]\\]><\/Name>/";
preg_match_all($pattern, $xml_content, $matches);
$name = $matches[1][0][v];
echo " name is $name ";
Использование XML-анализатор, как SimpleXML. – BoltClock
Извините за то, что я был очевиден, но почему вы не используете http://ru2.php.net/simplexml? – zerkms
Является ли XML всегда отсутствующим тегом закрывающего файла или могут быть какие-либо другие недопустимые конструкции? – Chandu