Xpath для выбора прокомментированного кода - PullRequest
4 голосов
/ 08 октября 2010

У меня есть запрос xpath:

descendant-or-self::link

и этот HTML-код:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/elements.css">
<title>Page</title>
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="css/ie6.css" />
<![endif]-->
</head>
etc...

Что мне нужно добавить к этому запросу, чтобы он также соответствовал комментарию <link>.

Это продолжение этого вопроса: PHP DomDocument изменяет условные комментарии

Ответы [ 2 ]

4 голосов
/ 08 октября 2010

В XPath 1.0, с правильным XHTML:

/xhtml:html/xhtml:head/xhtml:link|
/xhtml:html/xhtml:head/comment()[contains(.,'link')]

С провайдером DOM, который не обрабатывает пространства имен:

/html/head/link|
/html/head/comment()[contains(.,'link')]

Также:

/html/head/node()[self::link or self::comment()[contains(.,'link')]]
3 голосов
/ 08 октября 2010

Используйте оператор объединения "|":

потомок или-я :: ссылка | / * / комментарий ()

Это вернет текст комментария, который нельзя использовать для дальнейшего анализа, даже если он содержит текст, подобный разметке. Это просто строка, поэтому вам придется обращаться с ней как с одной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...