Jump to content
_marlon307

[Resolvido] Alterar valor de um Elemento Xml

Recommended Posts

Preciso de alterar o valor dos elementos no meu xml. So que o problema e que o código não esta alterando nenhum valor dentro da tag do meu xml. Meu xml esta assim e queria estar alterando os itens apos Rota

 

<Planilha Rota="Nome da rota" Funcionario="" SaidaP="0" VoltaP="0" Deposito="R$ 0,00" Gasto="R$ 0,00" Cheque="R$ 0,00" Moeda="R$ 0,00" Falta="R$ 0,00" Sobra="R$ 0,00" Observacoes="" />

 

Código que estou trabalhando e esse

 

        public static void EditarPlanilhaLp(Listarplanilhas Rota, string nArchive)
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(@"cache\" + nArchive + ".xml");
            XmlElement mapElement = (XmlElement)xmlDoc.SelectSingleNode(@"//Planilha[@Rota='" + Rota + "']");

            if (mapElement != null)
            {
                mapElement.Attributes["Funcionario"].Value = Rota.LpGridFunc;
                mapElement.Attributes["SaidaP"].Value = Rota.LpGridSaiu;
                mapElement.Attributes["VoltaP"].Value = Rota.LpGridVolta;
                mapElement.Attributes["Deposito"].Value = Rota.LpGridDep;
                mapElement.Attributes["Gasto"].Value = Rota.LpGridGast;
                mapElement.Attributes["Cheque"].Value = Rota.LpGridCheq;
                mapElement.Attributes["Moeda"].Value = Rota.LpGridMoed;
                mapElement.Attributes["Falta"].Value = Rota.LpGridFalt;
                mapElement.Attributes["Sobra"].Value = Rota.LpGridSob;
                mapElement.Attributes["Observacoes"].Value = Rota.LpObs;
            }
            xmlDoc.Save(@"cache\" + nArchive + ".xml");
        }

 

 

Share this post


Link to post
Share on other sites
28 minutos atrás, quintelab disse:

Seu xml é só aquela linha ? Tente usar XmlNode ao invés de XmlElement. O restante parece estar certo.

Consegui adicionado Rota.LpGridRota no meu SelectSingleNode 

XmlElement mapElement = (XmlElement)xmlDoc.SelectSingleNode(@"//Planilha[@Rota='" + Rota.LpGridRota + "']");

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 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 nelinhor
      Bom dia.
      Professor ( José Carlos Macoratti ) Sempre vejo alguns video do Senhor.
      Estou fazendo um pequeno aplicativo no Visual Studio 2019.
      Para fazer um controle de equipamentos e outros mais. Com geração de QRCode mais estou tendo alguma dificuldades, gostaria de saber se o senhor pode me ajudar?
      1 - Estou que rendo fazer no formate de gerar um relatorio um Locate ou um like dentro de um Select usando where e o like mais está dando erro.
           A minha Base de Dados é Access.
          Relatorio RDLC 
          Estou usando está Select:
          SELECT idaluno,nomealuno,responsavel,cpf,rg,fone_contato,desistente 
          FROM aluno 
          WHERE nomealuno LIKE '%' +@nomealuno+ '%'

          Obs: Estou tentando ver se isso funciona no BOTÃO para a buscar do que for lançado no Textbox.

          Mais este Select não fuciona quando vou testar na criação dentro da tabela quando eu a crio. o select.
       
      2 - Estou criando um relatório para ir buscar na Base de Dados o campo imagem, para formar o relatório das etiquetas que está em QrCode
           Mais etornando na coluna do relatório o nome erro
           Tem como o senhor me ajudar.
      Outra pergunta não sei se o senhor usa este RDLC que usamos o componente Report Viewer ele tem uma opção de Salvar em três formatos EXCEL, WORD e PDF mais a opção PDF da um erro na hora de gerar o PDF.
      Não sou programador, sou uma pessoa curiosa.
    • By andreia_sp
      Ola pessoal,
       
      nao sei se o correto seria nessa area, na duvida coloquei em C# porque minha aplicação está em C#.
      O problema é o seguinte: tenho um sistema desenvolvido que roda apenas localmente (intranet). Configurei o firewall pra liberar a porta e as outras maquinas acessam normalmente. A questao é que o IP da maquina onde foi hospedado é dinamico. Ou seja, diariamente as outras maquinas "perdem" o acesso.
      Tem como configurar de alguma forma que, independente do IP, todas as maquinas consigam acessar?
       
       
      Obrigada
    • By fernandoxwiggy
      Bom dia,
      Alguém já teve que desenvolver o CIOT da empresa E-frete em C#?
       
      Estou buscando exemplos de como fazer usando o web service deles (http://dev.efrete.com.br/Services/LogonService.asmx).
      Eu acredito que preciso chamar o "login" (depois o logout) dentro desse web service, mas ele é uma interface e não estou achando um exemplo de chamar um procedimento em um web service que seja um interface.
       
      Agradeço desde já se alguém puder ajudar.
    • By wagner9
      Olá companheiros,
       
      Preciso de ajuda para conseguir implementar um Feed de Notícias de um site parceiro em meu site. O pessoal do site parceiro me enviou os arquivos .xml, mas não consegui descobrir como implementar eles no meu site.
       
      Se alguem puder me ajudar, fico grato.
×

Important Information

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