Ir para conteúdo
Fórum Script Brasil
  • 0

Loop Em Blocos, Ler Xml, Inseri Banco, Atualiza Valor Do Atributo Xml


Alink

Pergunta

Olá Galera,

Estou precisando de um help uma ajuda urgente de como e se é possível fazer isso.

Tenho um código com a seguinte lógica:

1 - Faço o upload de um arquivo xml

2 - Abro o arquivo xml

3 - Leio o arquivo, linha por linha

4 - Comparo para vê se o dado já existe no banco

5 - Se não existir, vou inserirndo no banco de dados

4 - No final gravo no histórico de operação

Até ai beleza para arquivos que não tenha muitos registros, se tiver muitos registro o loop é encerrado com scrip timeout automáticamente pelo servidor.

O problema é o seguinte o arquivo xml tem muitas linha muitos registro um total em média de 9.000 a 15.000, registros para ser lidos do xml e inseridos no banco de dados.

Ai o loop fica gigante e acabaca caindo em script time out.

A minha ideia seria a seguinte eu criar mais um campo no xml chamado status e colocaria como valor default 0, e a cada leitura e inserção no banco eu alteraria o valor do status para 1 no xml.

Ai quando eu fosse lê o xml eu irira lê filtrando os dados somente que tiver os status igual a 0, pois assim eu poderia fazer, o loop em blocos, e não teria esse problema script time out.

Mais o meu probelma é justamente esse, conseguir alterar o campo status em questão de 0 para 1, e lêr o xml filtrando pelo status = 0, tipo como se faz com sql.

Estou usando o XMLDOM na locaweb.

Estou precisando disso com muita urgencia, por favor me ajudem, qualquer sugestão informação, tutorial , dica, código, exemplo e etc... será muito válido e de muita ajuda.

Aguardo uma ajuda de todos.

Um Abraço a todo e grata desde já.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

O endereço que te passei era pra você dar uma olhada nos tópicos, os exemplos estão em JavaScript mas não é nada dificil adaptar para ASP, veja se isso abaixo resolve seu problema.

Create an Attribute

The createAttribute() creates a new attribute node.

The following code fragment creates an "edition" attribute and adds it to all <book> elements:

xmlDoc=loadXMLDoc("books.xml");

var x=xmlDoc.getElementsByTagName('book');

var newatt;

for (i=0;i<x.length;i++)

{

newatt=xmlDoc.createAttribute("edition");

newatt.value="first";

x.setAttributeNode(newatt);

}

Este exemplo acima coloca o atributo 'edition' dentro da tag 'book', você pode adaptar para o seu caso, ir criando os elementos conforme obtém sucesso na gravação, ou pode alterar seu xml colocando o atributo em todos os 'nodes' e ir alterando o valor do atributo conforme for gravando no banco, assim você conseguirá filtar seu xml com base no atributo.

Fonte: http://www.w3schools.com/dom/dom_nodes_create.asp

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...