Willians Junior Postado Janeiro 19, 2018 Denunciar Share Postado Janeiro 19, 2018 Boa tarde! Sou iniciante na programação e preciso desenvolver uma aplicação que leia o arquivo xml e altere uma determinada tag. Segue xml. <?xml version="1.0" encoding="UTF-8"?> -<nfeProc versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe"> -<NFe xmlns="http://www.portalfiscal.inf.br/nfe"> -<infNFe versao="4.00" Id="NFe35180187315834001146550010000105791143097054"> -<ide> <cUF>35</cUF> <cNF>14309705</cNF> <natOp>Remessa em bonificação, doação ou brinde</natOp> <mod>55</mod> <serie>1</serie> <nNF>10579</nNF> <dhEmi>2018-01-18T16:34:33-02:00</dhEmi> <tpNF>1</tpNF> <idDest>1</idDest> <cMunFG>3522505</cMunFG> <tpImp>1</tpImp> <tpEmis>1</tpEmis> <cDV>4</cDV> <tpAmb>1</tpAmb> <finNFe>1</finNFe> <indFinal>0</indFinal> <indPres>9</indPres> <procEmi>0</procEmi> <verProc>NFE 4,00</verProc> </ide> -<emit> <CNPJ>87315834001146</CNPJ> <xNome>NEUGEBAUER ALIMENTOS S/A</xNome> <xFant>Neugebauer Alimentos S/A - ACP</xFant> -<enderEmit> <xLgr>AVENIDA LEDA PANTALENA</xLgr> <nro>1100</nro> <xCpl>CM03STASL1</xCpl> <xBairro>JARDIM PORTELA</xBairro> <cMun>3522505</cMun> <xMun>ITAPEVI</xMun> <UF>SP</UF> <CEP>06695210</CEP> <xPais>Brasil</xPais> <fone>5137169000</fone> </enderEmit> <IE>373166773114</IE> <CRT>3</CRT> </emit> -<dest> <CNPJ>10665706000126</CNPJ> <xNome>FERNANDES DISTRIBUIDORA DE DOCES LT</xNome> -<enderDest> <xLgr>TENENTE LANDY</xLgr> <nro>120</nro> <xCpl>120</xCpl> <xBairro>LAPA DE BAIXO</xBairro> <cMun>3550308</cMun> <xMun>são PAULO</xMun> <UF>SP</UF> <CEP>05068020</CEP> <cPais>1058</cPais> <xPais>Brasil</xPais> <fone>1136110302</fone> </enderDest> <indIEDest>1</indIEDest> <IE>148514264114</IE> </dest> -<det nItem="1"> -<prod> <cProd>000000000000002740</cProd> <cEAN>7891330016136</cEAN> <xProd>TABLETE 1891 ORANGE 4X900G (10X90G)</xProd> <NCM>18063210</NCM> <CEST>1700300</CEST> <CFOP>5910</CFOP> <uCom>CX</uCom> <qCom>1.0000</qCom> <vUnCom>215.1000000000</vUnCom> <vProd>215.10</vProd> <cEANTrib>7891330016136</cEANTrib> <uTrib>KG</uTrib> <qTrib>1.0000</qTrib> <vUnTrib>215.1000000000</vUnTrib> <indTot>1</indTot> </prod> -<imposto> -<ICMS> -<ICMS70> <orig>0</orig> <CST>70</CST> <modBC>3</modBC> <pRedBC>33.3300</pRedBC> <vBC>143.41</vBC> <pICMS>18.0000</pICMS> <vICMS>25.81</vICMS> <modBCST>4</modBCST> <vBCST>315.08</vBCST> <pICMSST>18.0000</pICMSST> <vICMSST>30.90</vICMSST> </ICMS70> </ICMS> -<IPI> <qSelo>000000000000</qSelo> <cEnq>999</cEnq> -<IPINT> <CST>53</CST> </IPINT> </IPI> -<PIS> -<PISNT> <CST>08</CST> </PISNT> </PIS> -<COFINS> -<COFINSNT> <CST>08</CST> </COFINSNT> </COFINS> </imposto> </det> -<det nItem="2"> -<prod> <cProd>000000000000002751</cProd> <cEAN>7891330016174</cEAN> <xProd>TABLETE 1891 SUPREME 4X900G (10X90G)</xProd> <NCM>18063210</NCM> <CEST>1700300</CEST> <CFOP>5910</CFOP> <uCom>CX</uCom> <qCom>2.0000</qCom> <vUnCom>215.1000000000</vUnCom> <vProd>430.20</vProd> <cEANTrib>7891330016174</cEANTrib> <uTrib>KG</uTrib> <qTrib>2.0000</qTrib> <vUnTrib>215.1000000000</vUnTrib> <indTot>1</indTot> </prod> -<imposto> -<ICMS> -<ICMS70> <orig>0</orig> <CST>70</CST> <modBC>3</modBC> <pRedBC>33.3300</pRedBC> <vBC>286.81</vBC> <pICMS>18.0000</pICMS> <vICMS>51.63</vICMS> <modBCST>4</modBCST> <vBCST>630.16</vBCST> <pICMSST>18.0000</pICMSST> <vICMSST>61.80</vICMSST> </ICMS70> </ICMS> -<IPI> <qSelo>000000000000</qSelo> <cEnq>999</cEnq> -<IPINT> <CST>53</CST> </IPINT> </IPI> -<PIS> -<PISNT> <CST>08</CST> </PISNT> </PIS> -<COFINS> -<COFINSNT> <CST>08</CST> </COFINSNT> </COFINS> </imposto> </det> -<det nItem="3"> -<prod> <cProd>000000000000002846</cProd> <cEAN>7891330016532</cEAN> <xProd>STIKADINHO MORANGO 20X394G (32X12,3G)</xProd> <NCM>18063110</NCM> <CEST>1700200</CEST> <CFOP>5910</CFOP> <uCom>CX</uCom> <qCom>4.0000</qCom> <vUnCom>139.4900000000</vUnCom> <vProd>557.96</vProd> <cEANTrib>7891330016532</cEANTrib> <uTrib>KG</uTrib> <qTrib>4.0000</qTrib> <vUnTrib>139.4900000000</vUnTrib> <indTot>1</indTot> <nFCI>EB571FFF-DACD-4923-B6F1-5E35CFC972CD</nFCI> </prod> -<imposto> -<ICMS> -<ICMS70> <orig>0</orig> <CST>70</CST> <modBC>3</modBC> <pRedBC>33.3300</pRedBC> <vBC>371.99</vBC> <pICMS>18.0000</pICMS> <vICMS>66.96</vICMS> <modBCST>4</modBCST> <vBCST>970.18</vBCST> <pICMSST>18.0000</pICMSST> <vICMSST>107.67</vICMSST> </ICMS70> </ICMS> -<IPI> <qSelo>000000000000</qSelo> <cEnq>999</cEnq> -<IPINT> <CST>53</CST> </IPINT> </IPI> -<PIS> -<PISNT> <CST>08</CST> </PISNT> </PIS> -<COFINS> -<COFINSNT> <CST>08</CST> </COFINSNT> </COFINS> </imposto> </det> -<total> -<ICMSTot> <vBC>802.21</vBC> <vICMS>144.40</vICMS> <vICMSDeson>0.00</vICMSDeson> <vFCP>0.00</vFCP> <vBCST>1915.42</vBCST> <vST>200.37</vST> <vFCPST>0.00</vFCPST> <vFCPSTRet>0.00</vFCPSTRet> <vProd>1203.26</vProd> <vFrete>0.00</vFrete> <vSeg>0.00</vSeg> <vDesc>0.00</vDesc> <vII>0.00</vII> <vIPI>0.00</vIPI> <vIPIDevol>0.00</vIPIDevol> <vPIS>0.00</vPIS> <vCOFINS>0.00</vCOFINS> <vOutro>0.00</vOutro> <vNF>1403.63</vNF> </ICMSTot> </total> -<transp> <modFrete>0</modFrete> -<transporta> <CNPJ>67199737000156</CNPJ> <xNome>TAFF TRANSP ROD EIRELI</xNome> <IE>206404772110</IE> <xEnder>AV PREFEITO JOAO VILALLOBO QU 1505B</xEnder> <xMun>BARUERI</xMun> <UF>SP</UF> </transporta> -<vol> <qVol>7</qVol> <esp>CX</esp> <pesoL>42.320</pesoL> <pesoB>48.810</pesoB> </vol> </transp> -<pag> -<detPag> <tPag>99</tPag> <vPag>1403.63</vPag> </detPag> </pag> -<infAdic> <infCpl>OV: 1000024032 VL: 3000030144 VT: VF: 5000027408 SI.: 0007 Contribuinte DocSAP: 9600053412 PED CLI: DT. VENC: PRAZO DIAS: Z000 - Boleto CUBAGEM: 0,122 M3 Valor aproximado total de tributos federais, estaduais e municipais: R$ 344,77</infCpl> </infAdic> </infNFe> -<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> -<SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> -<Reference URI="#NFe35180187315834001146550010000105791143097054"> -<Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>+oaJMfikZ4kK2kRkqnAFvClhcFE=</DigestValue> </Reference> </SignedInfo> <SignatureValue>j2nEnerZJyFTiO5skRi9Sc01RESuZn4LRpZSObEWF4/WIe3S17bBd90fhlX7RQYlRCgsI3d0X1S4 1rd7zajTKuh1O/GEh8b9y/U6MbvLSeQCOr09DoZvqUw/tuAcDo1CACdmimEyHDQi8wf7DtZf1Mt+ fKcuz2qYWG5UHbUSJDbxK0sCoMimbzTdeNVECA+FaNcgvScC7KANsL8lvZXCFJ3zOE4mPsvNLZzI lCU0xzeK14BokF0NKM129P3FIgWThZG9NqbQkAFtLgGQkGb4QC7sUyoFMdQMQgwJMmEosYKFNEWd ZJQaS4w+6wL2Rc6oAgpIcKiHc1fTNOEat84JEw==</SignatureValue> -<KeyInfo> -<X509Data> <X509Certificate>MIIH4TCCBcmgAwIBAgIQArJwNY7Ouh8+dez6MP1BUTANBgkqhkiG9w0BAQsFADB0MQswCQYDVQQG EwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEtMCsGA1UECxMkQ2VydGlzaWduIENlcnRpZmljYWRv cmEgRGlnaXRhbCBTLkEuMSEwHwYDVQQDExhBQyBDZXJ0aXNpZ24gTXVsdGlwbGEgRzcwHhcNMTcw OTI4MTUwNzI4WhcNMTgwOTI4MTUwNzI4WjCBrjELMAkGA1UEBhMCQlIxEzARBgNVBAoMCklDUC1C cmFzaWwxJjAkBgNVBAsMHUF1dGVudGljYWRvIHBvciBBUiBCREkgQnJhc2lsMRswGQYDVQQLDBJB c3NpbmF0dXJhIFRpcG8gQTExHDAaBgNVBAMME1ZPTlBBUiBBTElNRU5UT1MgU0ExJzAlBgkqhkiG 9w0BCQEWGHZ3ZWlzc0BuZXVnZWJhdWVyLmNvbS5icjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBAL2gKESAhuHNLZSTjBdOxreR069aGYc4xnj3NWj6jcrs7DYWwQj+Nog2sItQePrMxDdX j4VC1XWRUOIi28ORRmULIvoTFEoppnfzLxsyBa5S1aQ77eiH/FmUE4U/BcnZ02KsQCoaFUcw8z2E mJWC/BR0y73K9JgwUemITOUcDyvPNRuTaIECJSErTXDq849TEt3+zjMHWAzpI0BiXxyTtapmsh2x KNogm+snzUHrxzJ+B93tEjAhVjPwFOmyd14FpFDeax+MQtQ9NVBmAxevMBRDwNcOjdb/e72HxXHE pMtcwNf9TH7tAhVt6K22W1iOiM/bdsBfAdcgiQH5UUTjpQ8CAwEAAaOCAzIwggMuMIHABgNVHREE gbgwgbWgPQYFYEwBAwSgNAQyMzEwNzE5NzA0OTg2MTQwOTA2ODAwMDAwMDAwMDAwMDAwMDAxMDQx MjI3MTk4U1NQUlOgJgYFYEwBAwKgHQQbUk9HRVJJTyBNQVJUSU5TIERFIE9MSVZFSVJBoBkGBWBM AQMDoBAEDjg3MzE1ODM0MDAwMTc0oBcGBWBMAQMHoA4EDDAwMDAwMDAwMDAwMIEYdndlaXNzQG5l dWdlYmF1ZXIuY29tLmJyMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUXXIMvzPSu+OGpuhMBnF+VVwH oNYwgYsGA1UdIASBgzCBgDB+BgZgTAECAQswdDByBggrBgEFBQcCARZmaHR0cDovL2ljcC1icmFz aWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9kcGMvQUNfQ2VydGlzaWduX011bHRpcGxh L0RQQ19BQ19DZXJ0aVNpZ25fTXVsdGlwbGEucGRmMIHGBgNVHR8Egb4wgbswXKBaoFiGVmh0dHA6 Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDQ2VydGlzaWdu TXVsdGlwbGFHNy9MYXRlc3RDUkwuY3JsMFugWaBXhlVodHRwOi8vaWNwLWJyYXNpbC5vdXRyYWxj ci5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDQ2VydGlzaWduTXVsdGlwbGFHNy9MYXRlc3RDUkwu Y3JsMA4GA1UdDwEB/wQEAwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgbYGCCsG AQUFBwEBBIGpMIGmMGQGCCsGAQUFBzAChlhodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29t LmJyL3JlcG9zaXRvcmlvL2NlcnRpZmljYWRvcy9BQ19DZXJ0aXNpZ25fTXVsdGlwbGFfRzcucDdj MD4GCCsGAQUFBzABhjJodHRwOi8vb2NzcC1hYy1jZXJ0aXNpZ24tbXVsdGlwbGEuY2VydGlzaWdu LmNvbS5icjANBgkqhkiG9w0BAQsFAAOCAgEAsu7sos+0wg1X0pbkERxZujHF3Cb0QQ8XPt+NDr0E GO34EhtQtSZI9xs3TMLwdWvZ6B74eUU2MF9MnvutnGGsqHahwtqirBbXELU0Bs4BFd3l1rN6B6v7 v4VWxjw5VrVHAXjyBQeOgZf6oaE9t7VIlPQWQGBeoGTG9G9UtZRBcK4KT0d3WiVa6bZE2/QM7bwk jQQxkEdB9FGs5p7N3TVvHiEq1/ONxk1XRQ8MXQqB3XgXqky/os+GcvXzo9KPAGRWOFmDGK83mLBf SFa88L9LOsjmxhI5ZPKT82IMb/OzZJzw1AB8fDA8J6mlOJGakwXqLsCoN9UTc/0tzFbI3QMrFSBN J9y0gQajSQxm0Fk9ObHccOl5GYoN0Egl9CTaW8VbluU43AypdLQPu0K1FHEnf2igpVh7LzXVU/Ez XOto7ZXZK9+k/EF0PeR13e9EcBwqCDXOyrvk/KPoYjs2isZQ8OV7F7CeLRTnZg67lfz81XwxZ4d0 pYzb6zbEd3PysiymBZLQy0fNAeCX1D1D5YxtHzpN4KLWQMdU8hZbweR5gLRxRBuzVgdbDr1FIcrW C7G0mbsFlLBb0r0nWgHe3dFsnT3JBijHhdLGkSfXzuVJrWT71F/A78kCXFIgU1KK1cBj78+6oHVm jpwr95oepA+w1aEN/PUfOqryX0z4U/7RHV4=</X509Certificate> </X509Data> </KeyInfo> </Signature> </NFe> -<protNFe versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe"> -<infProt> <tpAmb>1</tpAmb> <verAplic>SP_NFE_PL009_V4</verAplic> <chNFe>35180187315834001146550010000105791143097054</chNFe> <dhRecbto>2018-01-18T16:34:48-02:00</dhRecbto> <nProt>135180040636718</nProt> <digVal>+oaJMfikZ4kK2kRkqnAFvClhcFE=</digVal> <cStat>100</cStat> <xMotivo>Autorizado o uso da NF-e</xMotivo> </infProt> </protNFe> </nfeProc> preciso pegar o campo de serie e alterar. Se alguém puder me ajudar, não precisa escrever todo codigo apenas me dar o caminho das pedras kkkk. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 19, 2018 Denunciar Share Postado Janeiro 19, 2018 <serie>1</serie> voce quer alterar isso ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willians Junior Postado Janeiro 20, 2018 Autor Denunciar Share Postado Janeiro 20, 2018 Sim, quero poder mudar o numero de serie, e depois salvar o xml Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 20, 2018 Denunciar Share Postado Janeiro 20, 2018 existem varias maneiras de se fazer isso vou te dar o exemplo de uma das maneiras unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Arquivo : TextFile; Line : string; num : integer = 0; implementation {$R *.dfm} function ExtractNumberInString( Linha: String ): String ; var i: Integer ; begin Result := '' ; for i := 1 to length( Linha ) do begin if Linha[ i ] in ['0'..'9'] then Result := Result + Linha[ i ] ; end ; end ; procedure TForm1.Button1Click(Sender: TObject); var Line, x: string; i : Integer; begin Memo1.Clear; AssignFile(Arquivo, 'C:\Teste.Xml'); Reset(Arquivo); if (IOResult <> 0) // verifica o resultado da operação de abertura then showmessage('Erro na abertura do arquivo !!!') else begin while not EOF(Arquivo) do begin ReadLn(Arquivo, Line); if Pos('</serie>',Line)>0 then begin x := ExtractNumberInString(line); Line := StringReplace(Line, x, '1234567', []); end; Memo1.Lines.add( Line ); Inc(num); Label1.Caption := 'Total de Linhas Anexadas = ' + inttostr(num); end; end; CloseFile(Arquivo); Memo1.Lines.SaveToFile('c:\Result.xml'); end; end. Leitura do Arquivo Inicial - <NFe xmlns="http://www.portalfiscal.inf.br/nfe"> - <infNFe Id="NFe35080599999090910270550010000000015180051273" versao="1.10"> - <ide> <cUF>35</cUF> <cNF>518005127</cNF> <natOp>Venda a vista</natOp> <indPag>0</indPag> <mod>55</mod> <serie>1</serie> <nNF>1</nNF> <dEmi>2008-05-06</dEmi> <dSaiEnt>2008-05-06</dSaiEnt> <tpNF>0</tpNF> <cMunFG>3550308</cMunFG> <tpImp>1</tpImp> <tpEmis>1</tpEmis> <cDV>3</cDV> <tpAmb>2</tpAmb> <finNFe>1</finNFe> <procEmi>0</procEmi> <verProc>NF-eletronica.com</verProc> </ide> - <emit> <CNPJ>99999090910270</CNPJ> Resultado Final ... substituindo <serie>1</serie> por <serie>1234567</serie> - <NFe xmlns="http://www.portalfiscal.inf.br/nfe"> - <infNFe Id="NFe35080599999090910270550010000000015180051273" versao="1.10"> - <ide> <cUF>35</cUF> <cNF>518005127</cNF> <natOp>Venda a vista</natOp> <indPag>0</indPag> <mod>55</mod> <serie>1234567</serie> <nNF>1</nNF> <dEmi>2008-05-06</dEmi> <dSaiEnt>2008-05-06</dSaiEnt> <tpNF>0</tpNF> <cMunFG>3550308</cMunFG> <tpImp>1</tpImp> <tpEmis>1</tpEmis> <cDV>3</cDV> <tpAmb>2</tpAmb> <finNFe>1</finNFe> <procEmi>0</procEmi> <verProc>NF-eletronica.com</verProc> </ide> - <emit> <CNPJ>99999090910270</CNPJ> Outra possibilidade seria manipulando o arquivo xml através de um ClientDataSet http://edn.embarcadero.com/de/article/37321 ou veja esses links https://www.google.com.br/search?source=hp&ei=TGZjWofzEMixwASGy5u4BA&q=ler+xml+nfe+delphi&o que=ler+xml&gs_l=psy-ab.1.7.0l10.1667.3995.0.6415.7.6.0.1.1.0.142.622.0j5.5.0....0...1c.1.64.psy-ab..1.6.635...0i131k1.0.8cZmsXIIbs8 abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willians Junior Postado Janeiro 22, 2018 Autor Denunciar Share Postado Janeiro 22, 2018 Obrigado Jhonas, funcionou perfeitamente. Agora só preciso poder escolher o arquivo ao invés de colocar o nome e o diretorio. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 22, 2018 Denunciar Share Postado Janeiro 22, 2018 isso é muito simples, basta colocar um componente OpenDialog no código procedure TForm1.Button1Click(Sender: TObject); var Line, x: string; i : Integer; begin Memo1.Clear; if OpenDialog1.Execute then AssignFile(Arquivo, OpenDialog1.FileName) else exit; Reset(Arquivo); if (IOResult <> 0) // verifica o resultado da operação de abertura then showmessage('Erro na abertura do arquivo !!!') else begin while not EOF(Arquivo) do begin ReadLn(Arquivo, Line); if Pos('</serie>',Line)>0 then begin x := ExtractNumberInString(line); Line := StringReplace(Line, x, '1234567', []); end; Memo1.Lines.add( Line ); Inc(num); Label1.Caption := 'Total de Linhas Anexadas = ' + inttostr(num); end; end; CloseFile(Arquivo); Memo1.Lines.SaveToFile('c:\Result.xml'); end; abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willians Junior Postado Janeiro 24, 2018 Autor Denunciar Share Postado Janeiro 24, 2018 Valeu Jhonas ajudou muito.... Se puder me ajudar com outra questão kkk... Esse negocio de manipular xml é bem dificil! O que eu preciso agora é o seguinte, trocar os campos de emitente pelo de destinatario e vice e versa... </ide> -<emit> <CNPJ>87315834001146</CNPJ> <xNome>NEUGEBAUER ALIMENTOS S/A</xNome> <xFant>Neugebauer Alimentos S/A - ACP</xFant> -<enderEmit> <xLgr>AVENIDA LEDA PANTALENA</xLgr> <nro>1100</nro> <xCpl>CM03STASL1</xCpl> <xBairro>JARDIM PORTELA</xBairro> <cMun>3522505</cMun> <xMun>ITAPEVI</xMun> <UF>SP</UF> <CEP>06695210</CEP> <xPais>Brasil</xPais> <fone>5137169000</fone> </enderEmit> <IE>373166773114</IE> <CRT>3</CRT> </emit> ...... -<dest> <CNPJ>10665706000126</CNPJ> <xNome>FERNANDES DISTRIBUIDORA DE DOCES LT</xNome> -<enderDest> <xLgr>TENENTE LANDY</xLgr> <nro>120</nro> <xCpl>120</xCpl> <xBairro>LAPA DE BAIXO</xBairro> <cMun>3550308</cMun> <xMun>são PAULO</xMun> <UF>SP</UF> <CEP>05068020</CEP> <cPais>1058</cPais> <xPais>Brasil</xPais> <fone>1136110302</fone> </enderDest> <indIEDest>1</indIEDest> <IE>148514264114</IE> </dest> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 24, 2018 Denunciar Share Postado Janeiro 24, 2018 qual é o conteudo do campo emitente e destinatario ? porque voce precisa alterar esses campos ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willians Junior Postado Janeiro 24, 2018 Autor Denunciar Share Postado Janeiro 24, 2018 O conteudo é esse.... Eu preciso alterar porque o sistema aqui da empresa é muito travado. Por exemplo, todas as notas de um cliente entram como nota de saida e eu preciso gerar uma entrada para essas notas, só que esse processo é manual e nota por nota, um cliente manda em media de 100 notas por dia e eu perco uma pessoa só pra fazer esse tramite de gerar entrada, se eu conseguir manipular essas informações eu já importo a nota como entrada. </ide> -<emit> <CNPJ>87315834001146</CNPJ> <xNome>NEUGEBAUER ALIMENTOS S/A</xNome> <xFant>Neugebauer Alimentos S/A - ACP</xFant> -<enderEmit> <xLgr>AVENIDA LEDA PANTALENA</xLgr> <nro>1100</nro> <xCpl>CM03STASL1</xCpl> <xBairro>JARDIM PORTELA</xBairro> <cMun>3522505</cMun> <xMun>ITAPEVI</xMun> <UF>SP</UF> <CEP>06695210</CEP> <xPais>Brasil</xPais> <fone>5137169000</fone> </enderEmit> <IE>373166773114</IE> <CRT>3</CRT> </emit> ...... -<dest> <CNPJ>10665706000126</CNPJ> <xNome>FERNANDES DISTRIBUIDORA DE DOCES LT</xNome> -<enderDest> <xLgr>TENENTE LANDY</xLgr> <nro>120</nro> <xCpl>120</xCpl> <xBairro>LAPA DE BAIXO</xBairro> <cMun>3550308</cMun> <xMun>são PAULO</xMun> <UF>SP</UF> <CEP>05068020</CEP> <cPais>1058</cPais> <xPais>Brasil</xPais> <fone>1136110302</fone> </enderDest> <indIEDest>1</indIEDest> <IE>148514264114</IE> </dest> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 24, 2018 Denunciar Share Postado Janeiro 24, 2018 -<emit> -<dest> <CNPJ> <CNPJ> <xNome> <xNome> <xFant> -<enderDest> -<enderEmit> <xLgr> <xLgr> <nro> <nro> <xCpl> <xCpl> <xBairro> <xBairro> <cMun> <cMun> <xMun> <xMun> <UF> <UF> <CEP> <CEP> <cPais> <xPais> <xPais> <fone> <fone> </enderEmit> </enderDest> <IE> <indIEDest> <CRT> <IE> </emit> </dest> OBS: Se voce fizer uma comparação com os campos, vai notar que alguns campos constam em uma coluna mas não na outra ( 4 campos ) informações não correspondentes entre emitente e destinatário: coluna A - coluna B xFant - não existe não existe - indIEDest não existe - cPais CRT - não existe o que sera feito com essas informações ??? Se voce quer trocar os campos do emitente para o destinatário e vice-versa, vai usar a mesma lógica que te passei na leitura da linha, voce deve procurar pelos identificadores que voce quer ( <CNPJ> <xNome> <xFant> ... etc ) , armazenar o valor em variaveis de controle ou uma matriz de dados um exemplo de como pegar o conteudo desses identificadores procedure TForm1.Button1Click(Sender: TObject); var s, r : string ; i : integer; begin s := '<xNome>NEUGEBAUER ALIMENTOS S/A</xNome>'; if pos('<xNome>',s) >0 then r := copy(s,pos('<xNome>',s)+7,pos('</xNome>',s)-8); showmessage(r); end; imagine que a variavel " s " é a linha que voce esta lendo do arquivo...e a variavel " r " é o valor que voce quer guardar para depois fazer a troca no arquivo que esta no Memo é só fazer a mesma coisa para todos os outros identificadores o arquivo lido, passa então para um Memo ... e nesse Memo, vai procurar os mesmos identificadores e trocar os conteúdos dos campos pelo valores que estão nas variaveis de controle ou na matriz de dados e depois é só salvar o arquivo no Memo modificado como XML abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willians Junior Postado Janeiro 25, 2018 Autor Denunciar Share Postado Janeiro 25, 2018 Entendi, só mais uma pergunta.... eu tenho varios clientes que talvez eu precise fazer a mesma coisa, eu queria fazer o seguinte, jogar o nome que foi pego no campo <xNome> jogar para um textbox. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 25, 2018 Denunciar Share Postado Janeiro 25, 2018 TextBox - Representa um controle de caixa de texto do Windows. esse componente é usado no VB no delphi, voce pode jogar o nome que foi pego no campo <xNome> em um Edit ou ListBox ou Combobox ou Memo ou RichEdit ... etc use o componente que for melhor para voce exemplo: procedure TForm1.Button1Click(Sender: TObject); var s, r : string ; i : integer; begin s := '<xNome>NEUGEBAUER ALIMENTOS S/A</xNome>'; if pos('<xNome>',s) >0 then begin r := copy(s,pos('<xNome>',s)+7,pos('</xNome>',s)-8); Edit1.Text := r; Memo1.Clear; Memo1.Lines.Append(r); ComboBox1.Clear; ComboBox1.Items.Append(r); ComboBox1.ItemIndex := 0; ListBox1.Items.Append(r); RichEdit1.Text := r; end; end; abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Willians Junior
Boa tarde! Sou iniciante na programação e preciso desenvolver uma aplicação que leia o arquivo xml e altere uma determinada tag. Segue xml.
preciso pegar o campo de serie e alterar. Se alguém puder me ajudar, não precisa escrever todo codigo apenas me dar o caminho das pedras kkkk.
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.