Intereting Posts
Как получить данные по $ _GET на php, когда я использовал .htaccess preg_match_all не соответствует всем возможностям Класс подключения базы данных PHP Способ использования Config :: set () дважды в функции gmail не отображает html в письме Doctrine Column не найден: 1054 Неизвестная колонка 's.features' в 'списке полей' ' Дважды щелкните переменную подсветки Sublime Text 3, включая $ Как передать массив в качестве нескольких параметров для работы? Как экспортировать часть таблицы как SQL в Adminer? WooCommerce – Условная прогрессивная скидка, основанная на количестве товаров в корзине Запускает ли md5 SQL Injection Yii Записывает таблицу, но не все выбранные данные извлекаются Какой разделитель использовать для preg_replace в PHP (замените работу вне PHP, но не внутри) Радио-кнопка всегда принимает логическое значение 0 в laravel Запрос ОЧЕНЬ медленный (> 30 секунд) в php, но быстрый при запуске запроса в phpmyadmin

Как очистить первый абзац от страницы википедии?

Скажем, я хочу захватить первый абзац на этой странице википедии . Как получить основной текст между полем заголовка и содержимого с помощью XPath или DOM и PHP или чего-то подобного?

Есть ли для этого php-библиотека? Я не хочу использовать api, потому что он немного сложный.

Примечание. Мне просто нужно добавить виджет под моими страницами, который отображает соответствующую информацию из Википедии.

Используйте следующее выражение XPath:

/*/h:body//h:h1 | /*/h:body//h:h1/following::node() [count(. | //h:table[@id='toc'] /preceding::node() ) = count(//h:table[@id='toc'] /preceding::node() ) ] 

Здесь префикс h: связан с пространством имен XHTML ( "http://www.w3.org/1999/xhtml" ).

Это преобразование показывает, что желаемый результат действительно создается :

 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:h="http://www.w3.org/1999/xhtml" > <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:template match="/"> <xsl:copy-of select= "/*/h:body//h:h1 | /*/h:body//h:h1/following::node() [count(. | //h:table[@id='toc'] /preceding::node() ) = count(//h:table[@id='toc'] /preceding::node() ) ] "/> </xsl:template> </xsl:stylesheet> - <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:h="http://www.w3.org/1999/xhtml" > <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:template match="/"> <xsl:copy-of select= "/*/h:body//h:h1 | /*/h:body//h:h1/following::node() [count(. | //h:table[@id='toc'] /preceding::node() ) = count(//h:table[@id='toc'] /preceding::node() ) ] "/> </xsl:template> </xsl:stylesheet> 

При запуске на XHTML-документе статьи в Википедии (вам также необходимо определить два объекта &nbsp; и &reg; для этого документа), будет получен желаемый результат.