Как получить комментарии из XML-документа в PHP

Я хочу извлечь все комментарии ниже определенного узла в документе XML, используя PHP. Я пробовал как методы SimpleXML, так и DOMDocument, но я продолжаю получать пустые выходы. Есть ли способ получить комментарии из документа без необходимости прибегать к Regex?

SimpleXML не может обрабатывать комментарии, но расширение DOM может. Вот как вы можете извлечь все комментарии. Вам просто нужно адаптировать выражение XPath для таргетинга на нужный узел.

$doc = new DOMDocument; $doc->loadXML( '<doc> <node><!-- First node --></node> <node><!-- Second node --></node> </doc>' ); $xpath = new DOMXPath($doc); foreach ($xpath->query('//comment()') as $comment) { var_dump($comment->textContent); } 

У вас есть доступ к API XPath? XPath позволяет находить комментарии, используя (например)

 //comment() 

Если вы используете SAX event-parser, синтаксический анализатор должен иметь событие для комментариев. Например, при использовании Expat вы должны реализовать обработчик и установить его, используя:

 void XMLCALL XML_SetCommentHandler(XML_Parser p, XML_CommentHandler cmnt);