Jump to content
sibeliusj

Ler resposta de outra url em XML com ASP

Recommended Posts

Boa tarde a todos.

 

Seguinte, eu quero consultar os pedidos de um site através do Itau Shopline, e eles fornecem uma URL que tenho que mandar alguns parametros para obter a resposta.

Até ai tudo bem, consigo enviar os parametros do pedido para a url especificada. 

Porém ela me retorna da seguinte forma:

<consulta>
<PARAMETER>
<PARAM ID="CodEmp" VALUE="123456789101112345678910"/>
<PARAM ID="Pedido" VALUE="00000958"/>
<PARAM ID="Valor" VALUE="100,00"/>
<PARAM ID="tipPag" VALUE="02"/>
<PARAM ID="sitPag" VALUE="04"/>
<PARAM ID="dtPag" VALUE=""/>
<PARAM ID="codAut" VALUE=""/>
<PARAM ID="numId" VALUE=""/>
<PARAM ID="compVend" VALUE=""/>
<PARAM ID="tipCart" VALUE=""/>
</PARAMETER>
</consulta>

 

A minha duvida é:  Como consigo manipular essas informações do XML uma vez que essa resposta nem mesmo está no meu servidor e sim no deles.

Desculpe se não fui muito claro, tentarei refazer a pergunta se ficar complicado de entender.

 

 

Obrigado!!

Share this post


Link to post
Share on other sites

Use esse função que fiz...

A variavel Nomecampo é case sensitive

Function BuscaNo(dadosxml, Nomecampo)
on error resume next
If InStr(dadosxml, Nomecampo) > 0 and InStr(dadosxml, Nomecampo & "/") = 0 and InStr(dadosxml, Nomecampo & " /") = 0 Then
p1 = InStr(dadosxml, "<" & Nomecampo & ">") + Len(Nomecampo) + 2
p2 = InStr(dadosxml, "</" & Split(Nomecampo, " ")(0) & ">")
    If p1 > p2 Then
        Dadosxml2 = Mid(dadosxml, p1 - Len(Nomecampo) - 2, Len(dadosxml) - p1 - Len(Nomecampo) - 2)
        p1 = InStr(Dadosxml2, "<" & Nomecampo & ">") + Len(Nomecampo) + 2
        p2 = InStr(Dadosxml2, "</" & Split(Nomecampo, " ")(0) & ">")
     BuscaNo = Mid(Dadosxml2, p1, p2 - p1)
     Exit Function
    End If
BuscaNo = Mid(dadosxml, p1, p2 - p1)
Else
BuscaNo = "_"
End If
if Err.Number <> "0" then BuscaNo = "???"
End Function

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ILR master
      Fala pessoal.
       
      Estou importando um arquivo xml para o meu DB porém, não consigo ler o campo data do xml. Todos os campos são lidos, menos o campo data. No xml ele está nesse formato: 09/06/2021 23:59:00
      Abaixo segue o código que estou usando:
       
      $xml = simplexml_load_file('cupons.xml');
      foreach($xml->coupon as $cupom) {
          echo $cupom->code.'<br>';
          echo $cupom->data.'<br>';
      }
       
      Obrigado!
    • By eStevo2734
      Pequei esse código, porém não funciona por nada pela minha capacidade que não é muita em PHP, já mudei ele de todas as formas possível e não funciona.
       
      <?php if(!empty($_FILES['xml']['tmp_name'])){ $arquivo = new DomDocument(); $arquivo->load($_FILES['xml']['tmp_name']); //var_dump($arquivo); $linhas = $arquivo->getElementsByTagName("processo"); //var_dump($linhas); $primeira_linha = true; foreach($linhas as $linha){ if($primeira_linha == false){ // pegar o valor natureza="Produtos e/ou Serviço" no elemento <marca> $nome = $linha->getElementsByTagName("nome")->item(0)->nodeValue; echo "Nome: $nome <br>"; $email = $linha->getElementsByTagName("status")->item(1)->nodeValue; echo "Status: $email <br>"; echo "<hr>"; } $primeira_linha = false; } } ?>  
      O arquivo em XML é beemmm longo
      <?xml version="1.0" encoding="UTF-8" ?> <revista numero="2620" data="23/03/2021"> <processo numero="922151156" data-deposit <despachos> <despacho codigo="IPAS009" nome="Publ </despachos> <titulares> <titular nome-razao-social="HERIK DE </titulares> <marca apresentacao="Mista" natureza="P <nome>SOTEN</nome> </marca> <classes-vienna> <classe-vienna codigo="27.5.1" edicao <classe-vienna codigo="28.3" edicao=" <classe-vienna codigo="26.2.7" edicao <classe-vienna codigo="29.1.15" edica </classes-vienna> <lista-classe-nice> <classe-nice codigo="41"> <especificacao>Agente artístico; li <status>Pendente</status> </classe-nice></lista-classe-nice> <procurador>TENAX SERVIÇOS DE CONSULTOR </processo> <processo numero="920178898"> <despachos> <despacho codigo="IPAS029" nome="Defe </despachos> <titulares> <titular nome-razao-social="DEIVISSON </titulares> <lista-classe-nice> <classe-nice codigo="25"> <especificacao>Bandanas;Bermudas;Bo <status>Deferida</status> </classe-nice> </lista-classe-nice> </processo> Os valores que estou tentando pegar são <nome>
      <status>. Mas também queria tentar pegar os
      valores nome-razao-social="..." e natureza. Penso que
      pode ter algo a ver com o tamanho do arquivo que é um
      pouco maior do que o habitual, girando em torno de
      30 MB e no total vão ter que tirar as informações 22 109
      que é o número de vezes que esse modelo de exemplo
      se repete no documento Mas como disse não sei muito
      sobre PHP é uma suposição)...
    • By joeythai
      Boa tarde pessoal,
       
      Tenho uma API para enviad dados via XML, eu salvo esse xml em um arquivo físico, os dados no arquivo físico me retornam 2 registros com todas as TAGs certinho, porém, quando eu pego a url e mando no browser, esses registros duplicam, alguém sabe o porque disso ? Estou utilizando laravel e a biblioteca DomDocument do PHP. O código esse abaixo:
       
      <code>
      <?php   namespace App\Http\Controllers\API\V1\Integracao;   use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\ValidationException; use App\Services\ToArray; use App\Exceptions\ApiException; use App\Http\Controllers\AppBaseController; use Illuminate\Support\Str; use App\Model\MySql\Site\IntegracaoModel as Integracao; use App\Model\MySql\Site\AuxFotosModel; use DOMDocument;   /** * * Classe criada para retornar informações dos imóveis do site da Sodré * e integrar com o Zap e Viva Real * */   class IntegracaoController extends AppBaseController { private $infos; private $integracao; private $urlImagem = "https://fotos.sodresantoro.com.br/fotos.imoveis/";   public function __construct(Integracao $integracao) { $this->integracao = $integracao; }   public function index() {   $dadosImoveis = $this->integracao->imoveis();   #versao do encoding xml $dom = new DOMDocument("1.0", "UTF-8");   #retirar os espacos em branco $dom->preserveWhiteSpace = false;   #gerar o codigo $dom->formatOutput = true;   #criando o nó principal (root) $root = $dom->createElement("ListingDataFeed"); $domAttrXMLNS = $dom->createAttribute("xmlns"); $domAttrXMLNS->value = 'http://www.vivareal.com/schemas/1.0/VRSync'; $domAttrXMLNSXSI = $dom->createAttribute("xmlns:xsi"); $domAttrXMLNSXSI->value = "http://www.w3.org/2001/XMLSchema-instance"; $domSchemaLocation = $dom->createAttribute("xsi:schemaLocation"); $domSchemaLocation->value = "http://www.vivareal.com/schemas/1.0/VRSync";   #nó filho $listings = $dom->createElement("Listings");   foreach ($dadosImoveis as $imoveis) {   $listing = $dom->createElement("Listing"); $details = $dom->createElement("Details"); $media = $dom->createElement("Media");   foreach ($imoveis->imagens as $key => $imagem) {   $this->infos['imagem'] = $this->urlImagem . $imagem->nome; $item = $dom->createElement("Item", $this->infos['imagem']);   #adiciona atributos nos elementos $domAttrImage = $dom->createAttribute("medium"); $domAttrImage->value = "image";   $domAttrCap = $dom->createAttribute("caption"); $domAttrCap->value = "img" . $key++;   $domAttrPrimary = $dom->createAttribute("primary"); $domAttrPrimary->value = "true"; $item->appendChild($domAttrCap); $item->appendChild($domAttrImage); $media->appendChild($item); } $this->infos['lance_inicial'] = $imoveis->vl_lanceinicial; $this->infos['title'] = $imoveis->title; $this->infos['descricao'] = $imoveis->descricao; $this->infos['lote_id'] = $imoveis->lote_id; $this->infos['endereco'] = $imoveis->Endereco; $this->infos['imagem'] = '';   //Faço o explode para poder fazer o envio(API não aceita casas decimais) //Para consultar: https://developers.grupozap.com/feeds/vrsync/elements/details/#list-price $preco = explode('.', $this->infos['lance_inicial']);   $listPrice = $dom->createElement("ListPrice", $preco[0]); $description = $dom->createElement("Description", htmlspecialchars(str_limit($this->infos['descricao'], 2000)));   $title = $dom->createElement("Title", $this->infos['title']); $listingID = $dom->createElement("ListingID", $this->infos['lote_id']); $transactionType = $dom->createElement("TransactionType", "For Sale"); $usageType = $dom->createElement("UsageType", "Residential"); $propertyType = $dom->createElement("PropertyType", "Residential / Apartment");   #adiciona os nós $details->appendChild($usageType); $details->appendChild($propertyType); $details->appendChild($description); $details->appendChild($listPrice);   $listing->appendChild($title); $listing->appendChild($listingID); $listing->appendChild($transactionType); $listing->appendChild($details); $listing->appendChild($media);   $listings->appendChild($listing); }   $root->appendChild($listings); $root->appendChild($domAttrXMLNS); $root->appendChild($domAttrXMLNSXSI); $root->appendChild($domSchemaLocation);   $dom->appendChild($root);   # Para salvar o arquivo, descomente a linha $dom->save("listagem-imoveis.xml");   #cabeçalho da página #header("Content-Type: text/xml"); # imprime o xml na tela print $dom->saveXML(); return response($dom->saveXML()); }   public function download() { return response()->file(public_path('listagem-imoveis.xml', 'Imóveis')); } } </code>
    • By Inside
      Olá amigos,
       
      Eu estou precisando de uma paginação ASP que exiba tipo de 1 até 3 páginas e depois Próxima Página ou de 1 até 6 depois Próxima Página. De 3 em 3 ou ou de 6 em 6.
       
      Alguém já viu algum exemplo desse tipo?
       
      Paginação, 1 2 3 próxima
       
      Eu procurei na web não achei nada do tipo em ASP. Aqui no fórum também não achei.
       
      Obrigado pela atenção.
    • By Ronaldo Bueno
      Pessoal, preciso de uma ajuda pf.
       
      estou com um problema que não sei resolver...
       
      no meu IIS eu fiz o seguinte:
       
      Na configuração de recurso coloquei como erro detalhado em local e personalizado remoto
      e configurei a página de erro 404 da seguinte forma
       
      Raiz: /index.asp
      Pasta: /Ze/index.asp
       
      quando eu acesso as url:
      https://www.dominio.com.br/zezinho Erro not found
       
      https://www.dominio.com.br/Ze/zezinho Acessa o conteúdo da index.asp (o que eu justamente configurei no IIS)
       
      Nenhuma das paginas zezinho existe; a pasta Ze existe  
      porque a primeira url não acessa minha index.asp (da raiz) e a segunda acessa a index.asp dentro da pasta?
       
      Seria muito grato e bem vindo qualquer ajuda. Obrigado
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.