Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''luaxml''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

Encontrado 4 registros

  1. Fala XTibianos! Vim disponibilizar e ensinar como usar a livraria xml em lua, desenvolvida por mim. Ela foi desenvolvida para substituir a livraria padrão disponibilizada por lua para trabalhar com dados xml. Essa livraria não requer a dll-xml necessária para a livraria padrão lua. Aqui tem o tutorial criado por mim para demonstrar as funções e suas implementações da livraria luaxml. Tutorial lua lib xml padrão Vamos lá. Primeiro, a livraria: Vou ensinar como usar ela. Vou usar como exemplo uma parte do arquivo vocations.xml: Primeiro, carregar o arquivo. Ele vai retornar um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Buscar a tag desejada. Ele vai retornar uma tabela contendo todos os parametros que foram lidos no arquivo. O primeiro argumento da função, é o nome da tag requerida. exemplo: <tagNome ....>, tagNome seria o primeiro argumento da função. O segundo elemento é usado para diferenciar um bloco de outro como no caso do arquivo vocations que contem varias vocations, mas apenas uma é a requerida. O terceiro elemento é o que diferencia um bloco de outro similar. seguindo o exemplo do arquivo vocations, existe varias vocações, mas apenas uma delas tem o id de numero 2. Imprime o que foi lido no arquivo. a saida seria essa, nesse caso. Mas, ela tambem é uma tabela, por isso, voce pode pegar os elementos dentro dela dessa forma. As tags existentes dentro do bloco "vocation", tambem é uma tabela com indice numerico; portanto é valido pegar os dados dela dessa forma. Cada tag que exista dentro do bloco, vem como uma tabela com indicie numerico. Criando objetos para xml: O argumento inserido , seria o nome do bloco. Ex -> <novo> </novo> Adiciona tag's dentro do corpo do bloco. Pode ser adicionado quantas tags quiser. Cria uma tagbloco ou bloco dentro do bloco principal. Ex -> <tagBloco inserido="primer" ordem="2" face="not"> </tagBloco> Essa função retorna um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Dessa forma que foi declarada sem uma tabela contendo os parametros da tag, ela é criada como um bloco. Ex -> <newBloco> </newBloco> Adiciona tag's ao corpo do novo bloco/tagbloco criado pela função append. E por fim, salva os dados em um arquivo. Nessa função, existe o argumento unico que é o destino do arquivo e seu nome, que nesse caso foi ocultado. Esse é os dados dentro do arquivo gerador pelo script. Devido as novas atualizações feitas a lib, agora podeis usar caracteres especial de busca e inserção de maiores informações para busca. Vou usar como exemplo essa parte do arquivo items.xml e movements.xml para explicar essas mudanças. items movements Na versão anterior da lib ela não poderia buscar informações no arquivo items.xml devido a um erro na ora de selecionar o bloco buscado. O problema residia em que: ao encontrar uma tag ela busca o seu fechamento, sendo que, no exemplo da parte do arquivo items que postei acima, ela pegava todo esse bloco, dessa forma anulando o verdadeiro id buscado. Isso foi resolvido. agora ela filtra o bloco encontrado antes de fazer a analise de que seja o dado requisitado. Outro problema era quando se desejava buscar uma informação mais precisa, como no caso do arquivo movements.xml que existe duas tags com os mesmo ids equip e deequip; se eu colocasse o id de qualquer item ele me retornaria a primeira sentença encontrada que na maioria das vezes não era a que eu queria. isso também foi corrigido; agora podeis usar mais informações para melhorar a precisão da busca. Veja esse exemplo: Obs. Os codigos estão codificados em utf8, converta para ansi antes de usa-los. É isso ae pessoal, espero que gostem; qualquer erro ou sugestão serão bem vindas. obrigado.
  2. Fala XTibianos! Vim disponibilizar e ensinar como usar a livraria xml em lua desenvolvida por mim. A livraria: Vou ensinar como usar ela. Vou usar como exemplo uma parte do arquivo vocations.xml: Primeiro, carregar o arquivo. Ele vai retornar um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Buscar a tag desejada. Ele vai retornar uma tabela contendo todos os parametros que foram lidos no arquivo. O primeiro argumento da função, é o nome da tag requerida. exemplo: <tagNome ....>, tagNome seria o primeiro argumento da função. O segundo elemento é usado para diferenciar um bloco de outro como no caso do arquivo vocations que contem varias vocations, mas apenas uma é a requerida. O terceiro elemento é o que diferencia um bloco de outro similar. seguindo o exemplo do arquivo vocations, existe varias vocações, mas apenas uma delas tem o id de numero 2. Imprime o que foi lido no arquivo. a saida seria essa, nesse caso. Mas, ela tambem é uma tabela, por isso, voce pode pegar os elementos dentro dela dessa forma. As tags existentes dentro do bloco "vocation", tambem é uma tabela com indice numerico; portanto é valido pegar os dados dela dessa forma. Cada tag que exista dentro do bloco, vem como uma tabela com indicie numerico. Criando objetos para xml: O argumento inserido , seria o nome do bloco. Ex -> <novo> </novo> Adiciona tag's dentro do corpo do bloco. Pode ser adicionado quantas tags quiser. Cria uma tagbloco ou bloco dentro do bloco principal. Ex -> <tagBloco inserido="primer" ordem="2" face="not"> </tagBloco> Essa função retorna um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Dessa forma que foi declarada sem uma tabela contendo os parametros da tag, ela é criada como um bloco. Ex -> <newBloco> </newBloco> Adiciona tag's ao corpo do novo bloco/tagbloco criado pela função append. E por fim, salva os dados em um arquivo. Nessa função, existe o argumento unico que é o destino do arquivo e seu nome, que nesse caso foi ocultado. É isso ae pessoal, espero que gostem. @Daniel, deleta esse topico. Por algum motivo, duplicou o topico.
  3. Vim aqui explicar sobre a livraria luaxml, suas funções e implementações. Primeiro: Adicionar em seu servidor a livraria luaXml.lua e LuaXML_lib.dll esse é o script da luaXml.lua que voce vai ter que por esse arquivo com esse codigo na mesma pasta do seu executavel. Não vou postar a dll para não virem dizer que tem virus. voce que tem o sistema lua implementado em seu pc, pode pegar a dll de dentro do diretorio: copie essa dll e coloque ela na mesma pasta do executavel. implementado essa nova livraria em seu servidor. agora irei explicar um pouco sobre as funções e implementações dessa livraria. conhecendo as funções dessa livraria disponibilizada por lua: existem outras funções, mas não irei tratar delas. vamos a um uso pratico dessas funções da livraria usando como base o arquivo vocations.xml. apenas para uso didatico, deixo aqui uma parte do codigo do arquivo vocations.xml que irei usar no codigo de exemplo. vamos agora ao codigo que irei usar como uso implementavel das funções da livraria luaxml. Explicando o codigo postado acima. -- Carrega o arquivo xml local xfile_load = xml.load("vocations.xml") -- Pega o bloco requerido segundo os parametros fornecidos. -- pode ser qualquer parâmetro que esteja inserido na tag ('vocation' << cabeçalho da tag - 'id','4' << retornar a tag do knight, 'name','Druid' ...). -- sempre use parâmetros em string mesmo que seja numeros, tem que ser fornecidos em string. local xfile_find = xfile_load:find("vocation",'name','Sorcerer') -- Verificação se houve resultado retornado. if not xfile_find then return end -- Criação de novos dados em xml -- 'Sorcerer' seria a tag do cabeçalho do bloco criado >> <sorcerer> ... </sorcerer> local new_xfile = xml.new('sorcerer') -- Esse daqui são dois exemplos de tags que existem dentro da tag principal. -- Cada tag é chamada por um index sucessivo e ascendente. local formula = xfile_find[1]:find('formula') local skills = xfile_find[2]:find('skill') -- Modifica o nome da tag do cabeçalho; nesse caso: 'Sorcerer'(declarado em xml.new) torna-se 'Bruxo'. new_xfile:tag('Bruxo') -- index [1], Adiciona valores entre tags >> saida gerado por essa função >> <id>1</id> new_xfile:append('id')[1] = xfile_find.id -- index [0], adiciona valores na tag >> saida gerada por essa função >> <autor nome = "Marcryzius" data = "16/julho/2016" /> new_xfile:append('id')[0] = 'autor nome = "Marcryzius" data = "16/julho/2016"' -- Mais um exemplo de adição de valores na tag >> saida gerada por essa função >> <gainCapDefAndAxe cap = "10" def = "1.0" axe = "2.0" /> new_xfile:append('gaincap')[0] = 'gainCapDefAndAxe cap = "'..xfile_find.gaincap..'" def = "'..formula.defense..'" axe = "'..skills.axe..'"' -- Adiciona novas variaveis dentro da propria cadeia de caracteres retornanda pela função find xfile_find['newid'] = '0' -- Modifica valores associados as variaveis xfile_find['id'] = 'newid' xfile_find.newid = '2' -- Cria uma nova tag com valores entre as tags >> <newid>2</newid> new_xfile:append('newid')[1] = xfile_find.newid -- Idem >> <id>newid</id> new_xfile:append('id')[1] = xfile_find.id or 'nil' -- Salva essa string de caracteres em um arquivo formatado como xml. new_xfile:save('dadosXml.xml') -- insira o caminho onde vai ser salvo o arquivo. Esse é o codigo dentro do arquivo (dadosXml.xml) gerado por esse programa: Espero que tenham entendido. Qualquer duvida, deixe nos comentarios e tentarei ajuda-lo.
  4. Ola galerinha. Eu sempre percebi que usam muito o arquivo de texto para arquivo remotos. Mesmo que não apresenta muita diferença entre a manipulação do XML E TXT e interessante aprender a manipular os dois corretamente. O XML e mais usado para configurações e o arquivo de texto e mais usado para "guardar". Existe outros arquivos remotos como a própria extensão lua onde suas tables e funções podem ser acessadas remotamente. Um exemplo e sua pasta lib. A melhor formula de procurar valores em um arquivo xml e usando funções para manipulação de strings. Primeiro precisamos achar o arquivo xml. Vamos declarar um variável local com o diretório do arquivo. Aplicamos o modulo "r"(Obs: Existem outros módulos mais por enquanto utilizaremos este) local dir = io.open("data/banana/tangerina.xml", "r") Acessamos a pasta "banana" e abrimos arquivos tangerina.xml. O arquivo XML tinha salvo este texto. <fruta="Banana" quem gosta="Beeki"/> <fruta="Tangerina" quem gosta="Vodkart"/> <fruta="Uva" quem gosta="LuckOake"/> <fruta="Mamão" quem gosta="OneShot"/> <fruta="Bosta" quem gosta="Stigal"/> Então se consideramos a configuração "beeki gosta da fruta Banana". Então queremos ver em um script lua qual fruta gosta o beeki: for i in events:read("*a"):gmatch('fruta="(.-)" quem gosta="Beeki"') do Não se assuste irei explicar. O for serve para que ela se repita ou seja ela pode procurar outros valores(Se existir outros valores) O string.gmatch procuras as linhas. for i in events:read("*a"):gmatch('O QUE VEM ANTES DO QUE PROCURA(.-)O QUE VEM DEPOIS QUE VOCÊ PROCURA(Esta parte finaliza a busca)') do O sinal (.-) significa o valor que você quer procurar. Alguns exemplos: Quero todas as frutas no xml! for i in events:read("*a"):gmatch('fruta="(.-)"') do Quem gosta de tangerina? for i in events:read("*a"):gmatch('fruta="Tangerina" quem gosta = "(.-)"') do Quero os nomes das pessoas do xml! for i in events:read("*a"):gmatch('quem gosta="(.-)"') do Diquinhas(dicas): E protinho fim de tutorial. Não sou bom em organização de tópicos Obrigado aos usuários que foram acessados remotamente(Eu não pedi autorização)
×
×
  • Criar Novo...