php

Uso de xpath () em PHP

Uso de xpath () em PHP
O documento XML é usado para armazenar uma pequena quantidade de dados e, às vezes, é necessário ler o conteúdo específico do documento XML com base no valor do caminho usando o script PHP. A função xpath () é usada para analisar o conteúdo de um documento XML. Esta função pode ser usada usando simplexml_load_file () função ou criando o objeto de SimpleXMLElement aula. A função xpath () pode ser usada para ler os valores de nós XML específicos mostrados neste tutorial.

Sintaxe:

A sintaxe da função xpath () é dada abaixo.

array xpath (string $ path)

Esta função tem um argumento que leva um valor de caminho e, se o caminho existir em qualquer nó do documento XML, o valor do nó será retornado como uma matriz. Diferentes usos desta função são explicados na próxima parte deste tutorial.

Crie um documento XML:

Crie um arquivo XML chamado produtos.xml com o seguinte conteúdo no local onde o arquivo PHP será criado para analisar este arquivo.




MN-56345
DELL
Monitor Dell de 15 polegadas
700


HD-34278
SAMSUNG
1 TB Samsung HDD
520


MS-67457
LOGITECH
Logitech Wireless Mouse
100


MN-76453
HP
Monitor HP de 14 polegadas
750

Uso de simplexml_load_file () função:

A função xpath () com o objeto criado pela função simplexml_load_file () foi mostrado nesta parte deste tutorial.

Exemplo-1: Leia os valores de nós XML específicos

O exemplo a seguir mostra como ler o conteúdo dos valores de nós específicos do documento XML, definindo o caminho da função xpath (). A variável de objeto, $ xml é criado para ler os valores de nós específicos do produtos.xml Arquivo. '/ PRODUTOS / PRODUTO / MARCA' é usado no xpath () para ler todos os valores do nó BRAND. '/ PRODUTOS / PRODUTO' é usado no xpath () para ler todos os valores de nós filhos de PRODUTOS nós. para cada loop é usado para imprimir os valores de NOME e PREÇO nós.

// Criar objeto para ler o arquivo XML
$ xml = simplexml_load_file ('produtos.xml ');
// Pesquisar todos os valores de nó BRAND
$ brand = $ xml-> xpath ('/ PRODUTOS / PRODUTO / MARCA');
// Imprime os valores da matriz
echo "

A lista de nomes de marcas é:

";
foreach ($ brand as $ name)
echo "$ name
";

// Pesquisar todos os valores do nó PRODUCT
$ products = $ xml-> xpath ('/ PRODUTOS / PRODUTO');
echo "

A lista de nome e preço do produto:

";
echo "";
echo "";
// Imprime os valores da matriz
foreach ($ products as $ product)
echo "";

echo "
NomePreço
$ product-> NAME $$ produto-> PREÇO
";
?>

Resultado:

A seguinte saída aparecerá após a execução do script do servidor.

Exemplo 2: Leia os valores de nós XML específicos com base na condição

O exemplo a seguir mostra como ler os valores de nós específicos com base na condição usando a função xpath (). O valor do caminho, '/ PRODUTOS / PRODUTO [PREÇO> 600]', irá pesquisar os valores de todos os nós filhos de PRODUTOS nó onde o valor de PREÇO nó é mais de 600. para cada loop é usado para imprimir os valores de NOME e PREÇO nós.

// Crie um objeto para ler o arquivo XML
$ xml = simplexml_load_file ('produtos.xml ');
// Pesquise os produtos onde o valor do preço é superior a 600
$ products = $ xml-> xpath ('/ PRODUTOS / PRODUTO [PREÇO> 600]');
echo "

A lista de nome de produto e preço em que o preço é superior a 600:

";
echo "";
echo "";
// Imprime os valores da matriz
foreach ($ products as $ product)
echo "";

echo "
NomePreço
$ product-> NAME $$ produto-> PREÇO
";
?>

Resultado:

A seguinte saída aparecerá após a execução do script do servidor.

Exemplo 3: Leia os valores de nós XML específicos com base no atributo

O exemplo a seguir mostra como ler os valores de nós específicos com base nos valores de atributos do nó específico do documento XML usando a função xpath (). O valor do caminho, '/ PRODUTOS / PRODUTO [@ categoria = ”Monitor”]' irá pesquisar os valores de todos os nós filhos de o produto nó, onde o valor do atributo de categoria é Monitor. para cada loop é usado para imprimir os valores de MARCA, e PREÇO nós.

// Crie um objeto para ler o arquivo XML
$ xml = simplexml_load_file ('produtos.xml ');
// Pesquise os produtos onde o valor do atributo çategory é 'Monitor'
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
echo "

A lista de marca, nome e preço do produto com base na categoria (Monitor):

";
echo "";
echo "";
// Imprime os valores da matriz
foreach ($ products as $ product)
echo "";

echo "
MarcaNomePreço
$ product-> MARCA$ product-> NAME $$ produto-> PREÇO
";
?>

Resultado:

A seguinte saída aparecerá após a execução do script do servidor.

Uso de SimpleXMLElement aula:

Os usos da função xpath () ao criar o objeto de classe SimpleXMLElement foram mostrados nesta parte deste tutorial.

Exemplo 4: Uso de xpath () definindo o conteúdo XML em uma variável

O exemplo a seguir mostra como ler os valores de nó do documento XML declarados em uma variável em vez do arquivo. O conteúdo XML é armazenado no $ xml_data variável. “/ Clientes / cliente” é usado como o valor do argumento da função xpath () para ler todos os valores dos nós filhos do cliente nó. Em seguida, um para cada loop é usado para imprimir os valores de o nome nó. “/ Clientes / cliente [@ departamento = 'RH']” é usado como o valor do argumento de outra função xpath () para ler todos os valores dos nós filhos do nó do cliente onde o valor de departamento atributo é RH. Próximo, um para cada loop é usado para imprimir os valores do o email nó.

$ xml_data = <<

Md. Mahbub
[email protegido]


Farhana Zaman
[email protegido]


XML;
// Defina o objeto para ler os dados XML
$ xml = novo SimpleXMLElement ($ xml_data);
// Defina o caminho para ler todos os dados dos clientes
$ customers = $ xml-> xpath ("/ clientes / cliente");
// Imprime o nome dos clientes
echo "

A lista de nomes de clientes:

";
foreach ($ clientes como $ cliente)
echo "$ customer-> name
";

// Defina o caminho para ler todos os dados do cliente do departamento de RH
$ customers = $ xml-> xpath ("/ clientes / cliente [@ departamento = 'RH']");
// Imprima o email dos clientes
echo "

O e-mail do cliente do departamento de RH:

";
foreach ($ clientes como $ cliente)
echo "$ customer-> email
";

?>

Resultado:

A seguinte saída aparecerá após a execução do script do servidor.

Conclusão:

Duas maneiras diferentes de usar a função xpath () para ler os valores de nó do documento XML com base no caminho específico ou o caminho com a condição ou o caminho com valor de atributo foram explicadas neste tutorial usando vários exemplos.

SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth é um dos jogos de estratégia de código aberto mais populares que você pode jogar no momento. Este jogo não está apenas em desen...
0 A.D. Tutorial
Dos muitos jogos de estratégia que existem, 0 A.D. consegue se destacar como um título abrangente e um jogo muito profundo e tático, apesar de ser de ...