Pergunta

O que é a sintaxe correta para a aplicação de funções de cadeia (por exemplo, "normalize-space") em um atributo usando a consulta XPath abaixo?

Inquérito: "./@ media"

Eu vi exemplos disso em outros lugares, mas se eu experimentá-lo usando a biblioteca de xpath do php ele retorna nada ...

Foi útil?

Solução

Usando query () em um objeto DOMXPath irá sempre resultar em um conjunto de nós (envolto em um DOMNodeList objeto), nunca em uma corda.

Você não pode puxar os resultados de funções XPath. Você deve consultar os nós que deseja processo, e processá-los em PHP.

Outras dicas

Use avaliar () vez de query(). Ele irá retornar um resultado digitado. Está disponível desde o PHP 5.1.

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

saída:

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

Por favor, tente isso.

Como sobre isso?

normalize-space(./@media)

Você também pode tentar:

normalize-space(string(./@media))

mas eu não acho que é necessário marcar aqui.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top