Ir ao conteúdo
  • Cadastre-se
aquemis

Ajuda em documento XML

Recommended Posts

Estou com um problema em um documento XML, e como sou leigo nesse assunto venho aqui no fórum pedir ajuda. O que ocorre é o seguinte: Tenho um curso de idiomas cujos idiomas estão gravados em um DVD, porém o software está em minha máquina, ele não necessita de instalação, roda direto do HD. Até aí tudo bem, o problema começou quando eu particionei meu HD e a letra referente ao Drive de DVD mudou para (E:), quebrando a cabeça aqui eu descobri um documento XML em uma pasta do software instalado, e nele consta que o caminho para os idiomas é a letra (D:), então eu alterei esse documento colocando a letra (E:) e funcionou, só que agora eu removi a partição que eu havia criado e o Drive de DVD voltou para a (D:), parou de funcionar novamente. Será que existe uma solução para fazer o software buscar em mais de um Drive até ele encontrar os idiomas?

Segue o exemplo de como está:

<directories>

<languageDataBasePath confirmed="true">E:</languageDataBasePath>

</directories>

Eu gostaria que ele procurasse pelos idiomas nos Drives (D:), (E:) e (F:), mas eu já tentei alterar o documento de várias formas e nenhuma deu certo.

As formas que eu tentei foram:

<directories>

<languageDataBasePath confirmed="true">D:</languageDataBasePath>

<languageDataBasePath confirmed="true">E:</languageDataBasePath>

<languageDataBasePath confirmed="true">F:</languageDataBasePath>

</directories>

Ele não encontrou os idiomas no Drive (D:) e não passou para o Drive seguinte, então me retornou uma mensagem de erro.

<languageDataBasePath confirmed="true">D, E, F:</languageDataBasePath>

Também não funcionou

Entre outras tentativas que não funcionaram!

Estou pensando em colocar o software junto com os idiomas no DVD, mas aí eu não sei como devo fazer para ele encontrar os idiomas no mesmo lugar em que ele está.

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao tem como nao... o xml nao é uma linguagem de programação... ela nao suporta operadores condicionais/logicos... o xml ai no caso é um representação do arquivo settings...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá index.xp, estou muito grato por seu esclarecimento, agora eu vou parar de quebrar a cabeça com isso e vou mudar a letra do drive para rodar o programa. É bom saber que o xml não aceita esses operadores, pois eu tentei usar o "IF, ELSE e o THEN" e realmente não funcionou, como eu disse: sou leigo nesse assunto!

Só mais uma dúvida para desencargo de consciência: Esse arquivo "settings" faz parte do código fonte do programa?

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele está usando o xml como arquivo de configuração, ou como banco de dados.


<DATAPACKET Version="2.0"> [COLOR="red"]versão[/COLOR]
- <METADATA>
- <FIELDS> [COLOR="Red"]campos[/COLOR]
<FIELD attrname="Name" fieldtype="string" WIDTH="24" />
<FIELD attrname="Capital" fieldtype="string" WIDTH="24" />
<FIELD attrname="Continent" fieldtype="string" WIDTH="24" />
<FIELD attrname="Area" fieldtype="r8" />
<FIELD attrname="Population" fieldtype="r8" />
</FIELDS>
</METADATA>
- <ROWDATA> [COLOR="red"]registros[/COLOR]
<ROW Name="Argentina" Capital="Buenos Aires" Continent="South America" Area="2777815" Population="32300003" />
<ROW Name="Bolivia" Capital="La Paz" Continent="South America" Area="1098575" Population="7300000" />
</ROWDATA>
</DATAPACKET>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Merephet, muito obrigado pela ajuda, mas ainda não consegui.

Tentei de várias formas, mas todas deram erro.

Veja o XML original do programa:

- <installerDefaults pathToAllUsers="C:\Curso de Idiomas">

- <databaseConnector>

<localDatabasePath>C:\Curso de Idiomas\tracking.db3</localDatabasePath>

</databaseConnector>

- <defaultLocales>

<installerDefaultLocale>en-US</installerDefaultLocale>

</defaultLocales>

- <directories>

<languageDataBasePath confirmed="true">C\Curso de Idomas</languageDataBasePath>

</directories>

</installerDefaults>

Onde está destacado em vermelho é onde o programa vai buscar o idioma, ou seja, na pasta Curso de Idiomas no Drive C:. Se eu trocar esse caminho por E:, ele vai buscar na raiz do Drive E:, e assim por diante. O problema é que eu estou querendo fazer com que ele procure pelos idiomas na raíz dos Drivers D:, E: e F:, mas do jeito que eu estou fazendo ele só procura no 1° Drive, no caso o D:, e se ele não encontra o idioma nesse local, dá erro.

Eu não entendi direito o código que você postou (não manjo muito desses códigos), mas eu tentei de várias formas e ele continuou procurando somente no 1° Drive.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquilo é o Xml como banco de dados(o formato), mas no seu caso ficou como arquivo de configuração.


- <installerDefaults pathToAllUsers="C:\Curso de Idiomas"> [COLOR="red"]@[/COLOR]
- <databaseConnector>
<localDatabasePath>[COLOR="DeepSkyBlue"]C:\Curso de Idiomas\[/COLOR]tracking.db3</localDatabasePath> [COLOR="red"]#[/COLOR]
</databaseConnector>
- <defaultLocales>
<installerDefaultLocale>en-US</installerDefaultLocale> [COLOR="red"]$[/COLOR]
</defaultLocales>
- <directories>
<languageDataBasePath confirmed="true">[COLOR="deepskyblue"]C\Curso de Idomas[/COLOR]</languageDataBasePath> [COLOR="red"]%[/COLOR]
</directories>
</installerDefaults>

Legenda

@ = Local de instalação padrão para todos os usuários, se não especificar um local ele será instalado nesse diretório para todos os usuários e não somente o seu(caso tenha mais de um).

# = Local aonde se encontra o banco de dados, e o .db3 é do Acess (.db)

$ = Ambiente em que ele irá funcionar, XX-YY-> X = Lingua Y= País.

% = Se o diretório do banco de dados de linguagem for confirmado, o caminho dele

Pelo que escreveu acho que teria que mudar o que está escrito em azul

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente isso Merephet, agradeço pela ajuda, mas ainda não consegui fazer com que o documento XML faça uma busca nos Drivers D:, E: e F:. Acho que não tem jeito, como disse o nosso amigo index.xp.

De qualquer forma agradeço a ajuda de vocês. Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o index.xp já comentou, o XML serve apenas como uma representação do arquivo de configuração, ou seja, um metadado que fornece para o programa as informações que este necessita, assim sendo, o programa deve estar previamente apto a obter as informações do XML. Se o programa não possui a funcionalidade interna de modificar os possíveis caminhos de acordo com a leitura do campo correspondente ao caminho no XML, então isto realmente não pode ser feito.

Não sei se ficou claro, mas de forma simplificada o xml pode ser visto como um fornecedor de informações, cabe ao programa manipulá-las corretamente.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi Goliathvv, muito obrigado pelo esclarecimento. Sendo assim, vou alterar a letra da unidade já que é um procedimento simples.

De qualquer forma estou muito agradecido pela ajuda e disposição de todos vocês! Mais uma vez, muito obrigado!

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×