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.
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 "
Nome | Preç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 "
Nome | Preç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 "
Marca | Nome | Preç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 = <<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.