用于选择注释代码的Xpath

时间:2010-10-08 04:06:23

标签: php html xpath

我有这个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 alter conditional comments

2 个答案:

答案 0 :(得分:4)

在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')]]

答案 1 :(得分:3)

使用union运算符“|”:

后代或自身::链路| / * /注释()

这将返回注释的文本,即使它包含类似标记的文本,也不能用于进一步解析。它只是一个字符串,所以你必须像对待它一样。