私はこのコードを持っています:
$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);
$shell は、次の 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
(
)
これは、クエリが機能しなかったことを意味しますか? クエリは SimpleXML で動作するため、DomXPath クエリ言語は SimpleXML Xpath 言語とは異なりますか?
動作している場合、一致したノードを表示および変更するにはどうすればよいですか?