我有這樣的代碼:DomXML xpath接下來我該做什麼?
$reader = new DOMDocument();
$reader->loadHTML($shell);
$xpath = new DomXPath($reader);
$xpath->registerNamespace('html','http://www.w3.org/1999/xhtml');
$res = $xpath->query('descendant-or-self::*[contains(@class,"content")]');
print_r($res);
$殼只是含有以下HTML代碼的變量:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="en-us" />
<title>Hello World</title>
</head>
<body>
<div class="content">
Hello World!!
</div>
</body>
</html>
如果我是正確的XPath查詢:
descendant-or-self::*[contains(@class,"content")]
是應該得到與類「內容」的div。但是,當我打印陣列時,我看到的只是一個空對象:
DOMNodeList Object
(
)
這是否表示查詢無效? DomXPath查詢語言與SimpleXML Xpath不同,因爲該查詢適用於SimpleXML?
如果它正在工作如何查看和修改匹配的節點?
謝謝,查詢正在工作。那麼,我將如何去編輯匹配的節點屬性和數據呢? – 2010-09-22 23:38:46
我想說的是在http://www.php.net/manual/en/class.domelement.php查看'DOMElement'的規範,你可能正在尋找'setAttribute'函數,'childNodes'屬性(也是一個DOMNodeList),'nodeValue'等等。API需要一些習慣,但它大部分是商定的API,所以任何DOM引用(PHP或其他)都很可能會給你一個很好的見解在它的工作中(並且檢查PHP手冊中的註釋)。 – Wrikken 2010-09-22 23:42:12