質問

以下のxpathクエリを使用して、属性に文字列関数(" normalize-space"など)を適用するための正しい構文は何ですか?

クエリ:" ./@ media"

他の場所でこの例を見てきましたが、phpのxpathライブラリを使用して試しても、何も返されません...

役に立ちましたか?

解決

DOMXPathオブジェクトで query()を使用すると、 >常にノードセットになります( DOMNodeList オブジェクト)、決して文字列ではありません。

XPath関数の結果を引き出すことはできません。処理するノードを照会し、PHPで処理する必要があります。

他のヒント

query()の代わりに evaluate()を使用する。型付きの結果を返します。 PHP 5.1以降で使用可能です。

$doc = new DOMDocument();
$xpath = new DOMXpath($doc);
$q = $xpath->evaluate('"test"');
var_dump($q);

出力:

string(4) "test"
./[normalize-space(@media)

これを試してください。

これはどうですか?

normalize-space(./@media)

試してみることもできます:しかし、ここでは必要ないと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top