Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Tenho esse arquivo XML
<API>
<Record Num="1">
<Field Name="COMANDO" Value="I"/>
<Field Name="NOMECAT" Value="teste"/>
<Field Name="CODPROD" Value="0002"/>
<Field Name="NOMEPROD" Value="Funcionou1"/>
<Field Name="IDPRODUTO" Value="3413076"/>
</Record>
<ErrCod>0</ErrCod>
<ErrDescr>OK</ErrDescr>
<Stats Sent="1" Valid="1" Included="1" IncludedSub="0" Changed="0" ChangedSub="0" Deleted="0" DeletedSub="0" ElapsedSeconds="0,516"/>
</API>
que é retornado quando realizo um consulta a uma api.
Eu preciso extrair o atributo Value da tag <Field Name="IDPRODUTO" Value="3413076"/>,
mas já tentei de diversas maneiras e nenhuma deu certo.
Obrigado.
:seta: DOMDocument
:seta: DOMXPath
<?php
$xml = <<<XML
<?xml version="1.0" encoding="ISO-8859-1" ?>
<API>
<Record Num="1">
<Field Name="COMANDO" Value="I"/>
<Field Name="NOMECAT" Value="teste"/>
<Field Name="CODPROD" Value="0002"/>
<Field Name="NOMEPROD" Value="Funcionou1"/>
<Field Name="IDPRODUTO" Value="3413076"/>
</Record>
<ErrCod>0</ErrCod>
<ErrDescr>OK</ErrDescr>
<Stats Sent="1" Valid="1" Included="1" IncludedSub="0" Changed="0" ChangedSub="0" Deleted="0" DeletedSub="0" ElapsedSeconds="0,516"/>
</API>
XML;
$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->loadXML( $xml );
$DOMXPath = new DOMXPath( $DOMDocument );
var_dump( $DOMXPath->query( './/Record[@Num="1"]/Field[@Name="IDPRODUTO"]' )->item( 0 )->getAttribute( 'Value' ) );
Saída:
string '3413076' (length=7)
:thumbsup:
>
Olá,
Tenho esse arquivo XML
que é retornado quando realizo um consulta a uma api.
Eu preciso extrair o atributo Value da tag <Field Name="IDPRODUTO" Value="3413076"/>,
mas já tentei de diversas maneiras e nenhuma deu certo.
Obrigado.
Tenta dar uma pesquisada na php.net que existem funções nativas do PHP que fazem essas operações em arquivos XML, essas funções pegam valores, atributos(que é o seu caso), dá uma pesquisada e qualquer coisa posta a dúvida.