Modificar Xml
Moderador: Moderadores
- Ricardo Sales Ribeiro
- Usuário Nível 3

- Mensagens: 279
- Registrado em: 13 Jul 2004 18:06
- Localização: Fortaleza-Ceara
Modificar Xml
OLá amigos
Boa Tarde
Gostaria de saber se tem alguma forma de alterar o xml diretamente na fonte.
É o seguinte, tenho um cliente q usa uma ferramente extra para gerar o xml, ele não usa o Emissor da Sefaz, então, neste layout do xml aparece uma linha com a logomarca logo na segunda linha do xml, e tem alguns clientes q não estão validando esse xml por causa dessa linha.
Como fazer para editar, e se é possivel editar para eu retirar essa linha de comando, q significa a logomarca.
Será q tem um editor especifico para xml?
Desde já agradeço a colaboração.
Boa Tarde
Gostaria de saber se tem alguma forma de alterar o xml diretamente na fonte.
É o seguinte, tenho um cliente q usa uma ferramente extra para gerar o xml, ele não usa o Emissor da Sefaz, então, neste layout do xml aparece uma linha com a logomarca logo na segunda linha do xml, e tem alguns clientes q não estão validando esse xml por causa dessa linha.
Como fazer para editar, e se é possivel editar para eu retirar essa linha de comando, q significa a logomarca.
Será q tem um editor especifico para xml?
Desde já agradeço a colaboração.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Modificar Xml
Não sei quanto ao aspecto fiscal se isso seria válido. Mas tecnicamente é possível sim, pois o XML é um arquivo texto, não é ? Então você poderia ler a linha onde contém essa tag ou esse logotipo e simplesmente gravaria o arquivo novamente sem a linha que deseja excluir. Sugiro fazer isso com as funções de baixo nível FREAD/FREADSTR/FWRITE/FCLOSE.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Modificar Xml
Aliás sugiro de você abrir o arquivo xml ler-lo linha a linha e gravar as linhas em outro arquivo que não sejam as do logotipo. Grave em um arquivo temporário, depois feche o arquivo xml e copie encima do xml.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: Modificar Xml
Amiguinho,
Um XML é composto de informações que são ladeadas por TAGs.
Uma TAG poderá conter um conteúdo qualquer, seja numero, string, etc.
As TAG geralmente precisam de um inicializador e um terminador, sendo que o terminador possui uma "/"(barra)
Exemplo:
As TAGs compõe cada elemento, um elemento pode ser simples ou complexo.
Simples:
Complexo:
Voce pode fazer a pesquisa de um elemento qualquer dentro do arquivo desde que saiba qual é o nome da TAG.
No seu caso voce pode trocar o conteúdo de um elemento usando funções de pesquisa de string:
Pegue o inicio de um elemento passando o conteúdo do XML:
Pegue o final de um elemento passando o conteúdo do XML:
Com base no posicionamento correto de inicio e fim do elemento processe uma troca de conteúdos ou do elemento inteiro:
Exemplo, voce deseja trocar o bairro CENTRO por CENTRAL. Processe um StrTran() parecido com este:
Ou:
Segue uma funçãozinha que pega um conteúdo de um elemento qualquer:
Exemplo de uso:
Um XML é composto de informações que são ladeadas por TAGs.
Uma TAG poderá conter um conteúdo qualquer, seja numero, string, etc.
As TAG geralmente precisam de um inicializador e um terminador, sendo que o terminador possui uma "/"(barra)
Exemplo:
Código: Selecionar todos
...
<endereco>RUA DOS TESTES, 123</endereco>
...
Simples:
Código: Selecionar todos
...
<telefone>11-2233-4455</telefone>
...
Código: Selecionar todos
...
<enderecamento>
<rua>RUA DOS TESTES, 123</rua>
<bairro>CENTRO</bairro>
<telefone>11-2233-4455</telefone>
</enderecamento>
...
No seu caso voce pode trocar o conteúdo de um elemento usando funções de pesquisa de string:
Pegue o inicio de um elemento passando o conteúdo do XML:
Código: Selecionar todos
LOCAL nPosIni := At( [<]+cTag+[>], cXML ) + len( [<]+cTag+[>] )
Código: Selecionar todos
LOCAL nPosFim := At( [</]+cTag+[>], cXML )
Exemplo, voce deseja trocar o bairro CENTRO por CENTRAL. Processe um StrTran() parecido com este:
Código: Selecionar todos
StrTran( cXML, "<bairro>CENTRO</bairro>", "<bairro>CENTRAL</bairro>" )
Código: Selecionar todos
StrTran( cXML, "< logoMarca>logo.bmp</logoMarca>", "< logoMarca></logoMarca>" )
Código: Selecionar todos
function getXMLValue( cXML, cTAG )
LOCAL nPosIni := At( [<]+cTag+[>], cXML ) + len( [<]+cTag+[>] )
LOCAL nPosFim := At( [</]+cTag+[>], cXML )
return substr( cXML, nPosIni, nPosFim-nPosIni )
Código: Selecionar todos
...
cXML := MemoRead( "teste.xml" )
...
? getXMLValue( cXML, "logoMarca" )
...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.