2012-02-03 2 views
0

Я пытаюсь проанализировать XML-документ с помощью PHP. Я использую simplexml, который работал до этой последней части, где он пытается разобрать XML-поле, содержащее в основном веб-страницу html. У меня нет возможности настроить XML-документ, поэтому я работаю над этим.Анализ XML-кода с помощью встроенного HTML

 <DataContent> 

<!-- start embedded XHTML document --> 

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:xn="http://www.xmlnews.org/ns/"> 

<head> 
<meta content="text/html" http-equiv="Content-Type" charset="UTF-8"/> 
<title>title of page</title> 

etc... 

</body> 
</html> 

<!-- end embedded XHTML document --> 

     </DataContent> 

Так что я разбираюсь в нем, и он не разбирает его. В любом случае, чтобы захватить все поле DataContent?

Попытка это не работает

$BodyContent=$xml->Item->Component->ContentItem->DataContent; 
+0

Не существует должен быть флаг CDATA, прежде чем такие вещи, как, что в XML-документ? –

+0

Просто чтобы быть ясным, тег на самом деле отсутствует в xml? –

+0

Тег тела находится в xml, я просто вырезал его, поскольку между открытием и закрытием был большой код. Я не знаю, должен ли быть тег CDATA, но я не могу его отрегулировать? – user1188421

ответ

0

При вызове simplexml_load_file или simplexml_load_string установить опцию LIBXML_NOCDATA и обертывание DataContent в <![CDATA[...]]> теги. После этого вы сможете получить доступ к информации, как вы хотели.

Пример:

$xml = simplexml_load_file('/path/to/file.xml', 'SimpleXMLElement', LIBXML_NOCDATA); 
Смежные вопросы