現在、クライアント側のxpath評価に苦労しています。開発目的で、次のように追加しました。
<?php header( 'Content-type: application/xhtml+xml' ); ?>
無効な(x)htmlを生成した場合に解析エラーを取得するには、ページの上部に移動します。このコードを使用して//div
、などのxpathクエリを作成したいと思います。//div[@class='test']
function xpath( query ){
var evaluater = new XPathEvaluator();
var resolver = document.createNSResolver( document.documentElement );
var iterator = evaluater.evaluate( query, document, resolver, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null );
var nodes = [];
var result;
while( ( result = iterator.iterateNext() ) != null ){
nodes.push( result );
}
return nodes;
};
私のページの上部は次のようになります。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
header(...)
メソッドがコメントアウトされている場合は正常に機能しますが、トリガーされた場合、xpathクエリは結果を返しません。
どうしてこれなの?xpath評価のヘッダーを果たす役割は何ですか?
編集:
html要素からxmlnsを削除し、header
-メソッドを切り替えると、次のように表示されます。