2010-10-08 94 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