2010-10-08 90 views
4

我有这样的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

回答

3

使用union运算符 “|”:

后代或自身::链接|/* /评论()

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

4

在XPath 1.0,适当的XHTML:

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

使用DOM提供商,它不处理命名空间:

​​

另外:

/html/head/node()[self::link or self::comment()[contains(.,'link')]] 
+0

好吧,我会能够把它当作一个正常的节点还是只返回一个文本值? – 2010-10-08 23:38:56

+0

@Franky Chanyau:它返回两个'link'元素和一个注释节点。然后你可以操纵注释字符串值。 – 2010-10-09 19:40:11