Uso de xpath em php

Uso de xpath em php
O documento XML é usado para armazenar uma pequena quantidade de dados e, às vezes. A função XPath () é usada para analisar o conteúdo de um documento XML. Esta função pode ser usada usando Simpxml_load_file () função ou criando o objeto de SimpxMleLement aula. A função XPath () pode ser usada para ler os valores de nó 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 aceita 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 dessa função explicaram na próxima parte deste tutorial.

Crie o documento XML:

Crie um arquivo XML nomeado 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
Mouse sem fio Logitech
100


MN-76453
HP
Monitor HP de 14 polegadas
750

Uso de Simpxml_load_file () função:

A função xPath () com o objeto criado pela função SimpXML_Load_File () mostrou nesta parte deste tutorial.

Exemplo 1: Leia os valores específicos do nó XML

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

// Crie objeto para ler o arquivo XML
$ xml = simplexml_load_file ('produtos.xml ');
// Pesquise todos os valores do nó da marca
$ marca = $ xml-> xpath ('/produtos/produto/marca');
// Imprima os valores da matriz
eco "

A lista de nomes de marcas é:

";
foreach ($ Brand como $ nome)
eco "$ nome
";

// Pesquise todos os valores do nó do produto
$ produtos = $ xml-> xpath ('/produtos/produto');
eco "

A lista de nome e preço do produto:

";
eco "";
eco "";
// Imprima os valores da matriz
foreach ($ produtos como $ produto)
eco "";

eco "
NomePreço
$ produto-> nome $$ Produto-> Preço
";
?>

Saída:

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

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

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

// Crie objeto para ler o arquivo XML
$ xml = simplexml_load_file ('produtos.xml ');
// Pesquise os produtos onde o valor do preço é superior a 600
$ produtos = $ xml-> xpath ('/produtos/produto [preço> 600]');
eco "

A lista de nome e preço do produto onde o preço é superior a 600:

";
eco "";
eco "";
// Imprima os valores da matriz
foreach ($ produtos como $ produto)
eco "";

eco "
NomePreço
$ produto-> nome $$ Produto-> Preço
";
?>

Saída:

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

Exemplo 3: Leia os valores de nó 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 atributo do nó específico do documento XML usando a função xpath (). O valor do caminho, '/Produtos/Produto [@Category = "Monitor"]' pesquisará os valores de todos os nós filhos de o produto nó, onde o valor do atributo de categoria é Monitor. para cada O loop é usado para imprimir os valores de MARCA, e PREÇO nós.

// Crie objeto para ler o arquivo XML
$ xml = simplexml_load_file ('produtos.xml ');
// Pesquise os produtos em que o valor do atributo Çategory é 'monitor'
$ produtos = $ xml-> xpath ('/produtos/produto [@category = "monitor"]');
eco "

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

";
eco "";
eco "";
// Imprima os valores da matriz
foreach ($ produtos como $ produto)
eco "";

eco "
MarcaNomePreço
$ produto-> marca$ produto-> nome $$ Produto-> Preço
";
?>

Saída:

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

Uso de SimpxMleLement aula:

Os usos da função XPath () criando o objeto SimplexMlelement Class mostrou 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 do 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, a para cada O loop é usado para imprimir os valores de o nome nó. “/Clientes/cliente [@departamento = 'hr']" é 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 é Hr. Próximo, a para cada um O loop é usado para imprimir os valores do e-mail nó.

$ xml_data = <<

MD. Mahbub
[email protected]


Farhana Zaman
[email protected]


Xml;
// Defina objeto para ler os dados XML
$ xml = new SimpXMLelement ($ xml_data);
// Defina o caminho para ler todos os dados dos clientes
$ clientes = $ xml-> xpath ("/clientes/cliente");
// Imprima o nome dos clientes
eco "

A lista de nomes de clientes:

";
foreach ($ clientes como $ cliente)
eco "$ cliente-> nome
";

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

O e -mail do cliente do departamento de RH:

";
foreach ($ clientes como $ cliente)
eco "$ cliente-> e-mail
";

?>

Saída:

A saída a seguir 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 do nó do documento XML com base no caminho específico ou no caminho com a condição ou o caminho com o valor do atributo foram explicados neste tutorial usando vários exemplos.