Just Do It - XML Generic Editor

Publicado por Denis Doria 12/06/2008

[ Hits: 4.427 ]

Download jdi.py




Gera arquivos xml a partir de dois arquivos:
xmlfile:

<campo1="coluna1" campo2="coluna3"> <campo1="coluna2"campo2="coluna9">

inputfile:

1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20

Output:

<campo1="2" campo2="4">
<campo1="3"campo2="10">
<campo1="12" campo2="14">
<campo1="13"campo2="20">

Atualmente o script só trabalha com 10 colunas, ou seja, da coluna0 até coluna9. Se for omitido o arquivo de saida o output é feito na tela.

  



Esconder código-fonte

#!/usr/bin/python

###########################################
#JUST DO IT - Python Version 0.02                  
#                                         
#XML Generic Editor...                
#                      
#:-&                      
#Autor: Denis Doria                
#                      
###########################################

###########################################
#xmlfile                   
#                      
#<campo1="coluna1" campo2="coluna3">          
#<campo1"coluna2"campo2="coluna9">          
#                      
###########################################
#inputfile                   
#                      
#1 2 3 4 5 6 7 8 9 10                
#11 12 13 14 15 16 17 18 19 20             
#                      
###########################################
#Output                   
#
#<campo1="2" campo2="4">             
#<campo1"3"campo2="10">             
#<campo1="12" campo2="14">             
#<campo1"13"campo2="20">             
#                      
###########################################

###########################################
#Changelog                         
#                            
# v0.01 - Cricao do software                   
#    - Le um xml generico e uma entrada gerando um xml especifico    
#                            
# v0.02 - Elimina linhas em branco no arquivo de entrada      
#    - Verificacao da permissao de escrita para o outputfile      
#    - Criacao da ajuda                   
#    - Elimina linhas em branco no XML             
#    - Criado opcao de imprimir na tela ou inserir em um arquivo    
#                                                                       
###########################################
import sys

#Verificacao dos argumentos da linha de comando
if len(sys.argv) < 2:

   print "JDI - Generic Xml Editor\n"

   print "jdi <arquivo xml> <arquivo de entrada> [arquivo de saida]\n"

   sys.exit(1)

#Verificacao dos arquivos necessarios
try:
   xmlfile    = open(sys.argv[1],'r')

except IOError:
   
   print "XML File not found!!!"
   sys.exit(1)

try:
   inputfile  = open(sys.argv[2],'r')

except IOError:

   print "Input File not found!!!"
   sys.exit(1)

out=0

if len(sys.argv)==4:

   try:

      outputfile = open(sys.argv[3],'w')
      out=1

   except IOError:

      print "Permission denied!!!"
      sys.exit(1)


#Elimina as linhas em branco do arquivo XML
xmltmp = xmlfile.readlines()
xmltmp.sort()
xmltmp.reverse()
xmlback   = xmltmp[:xmltmp.index('\n')]

xmllen      = len(xmlback)
input      = inputfile.readlines()

for i in range(len(input)):

   #Elimina o caracter de 'nova linha'
   newline      = input[i].replace('\n','') 

   if newline == '':
      continue

   #Cria uma lista com os valores de cada coluna
   rowinput   = newline.split(' ')
   
   for j in range(xmllen):
      
      xml = []

      #Coloca o xml nesta lista
      xml.extend(xmlback)
         
      #Para cada coluna tenta substituir o valor do input no xml   
      for w in range(len(rowinput)):         

         row       = 'coluna'+str(w)
         xml[j]     = xml[j].replace(row,rowinput[w])

      if out == 0:

         print '%s' % (xml[j].replace('\n',''))
   
      else:
         outputfile.write(xml[j])

if out == 1:
   outputfile.flush()
   outputfile.close()

inputfile.close()
xmlfile.close()



Scripts recomendados

Gerador de CPF em Python

Just Do It - XML Generic Editor

Password generator

Brincando com conjuntos

O Barqueiro (versão 2.0)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts