| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 13:22:13
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Alguém sabe o que posso usar para criar uma função que substitui strings?
Eu preciso:
- verificar se a string possui quebras de linha e sua posição
- se tiver eu substituo suas ocorrências por uma quebra mais dois espaços, com exceção da última quebra
É um código de indentação que preciso:
Onde isso
Vira isso
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 13:37:40
|
Lucas Teixeira
Java Ninja
![[Avatar]](/images/avatar/758a06618c69880a6cee5314ee42d52f.png)
Membro desde: 11/12/2003 10:47:22
Mensagens: 269
Localização: São Paulo - SP
Offline
|
sera que nao funcionaria o
[]s
|
Lucas F. A. Teixeira .·.
lucastex no gmail com
lucastex.com/twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 13:58:22
|
aborges
GUJ Ranger
![[Avatar]](/images/avatar/c896d785411ce08cdd4ea.jpg)
Membro desde: 08/10/2003 11:44:19
Mensagens: 818
Localização: Caçapava - SP
Offline
|
Resolveria... Mas temos q ver q o problema dele eh mais embaixo...
Com ele esta trabalhando com XML, deve-se lembrar q ele pode ter N níveis de hierarquia....
Ele ira utilizar o replaceAll, mas vai precisar de uma logicazinha...
This message was edited 1 time. Last update was at 22/12/2004 13:58:46
|
Linux é que nem sexo, quem não conheçe diz que dói
Alexandre Borges |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 13:58:36
|
volnei
JavaEvangelist
![[Avatar]](/images/avatar/8b16ebc056e613024c057be590b542eb.png)
Membro desde: 29/01/2003 11:36:27
Mensagens: 354
Offline
|
renato3110 wrote:Alguém sabe o que posso usar para criar uma função que substitui strings?
Eu preciso:
- verificar se a string possui quebras de linha e sua posição
- se tiver eu substituo suas ocorrências por uma quebra mais dois espaços, com exceção da última quebra
É um código de indentação que preciso:
Onde isso
Vira isso
Se você estiver querendo formatar arquivos XML aconselho você a dar uma olhada na API JDom, é só abrir um arquivo e salvá-lo e a identação fica do jeito que você definir.
|
Volnei Granado Munhoz
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 13:59:06
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Com certeza tem jeitos mais bonitos, porém:
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 15:35:15
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Caros colegas
Lucas, ajudará bastante o replaceAll
aborges, você está correto, vou precisar de iterações, mas já "sei" como fazer isso. O problema está sendo a parte "atômica" dessa operação, que é essa identação simples que mostrei.
volnei, gostei de sua idéia, mas o problema é que o XML é gerado no código e não oriundo de um arquivo. E se fosse possível queria evitar criar a estrutura DOM (memória!) apenas para indentar.
Será que existe alguma API que indente uma string XML, preferencialmente sem consumir mais memória do que o interressante?
Caso exista será interessante para mim, pois poderei gerar o XML sem indentações e quebras de linha, e dar um comando simples a essa API para identação.
Caso não exista, acho que prefiro usar o replaceAll na marra e o código do LIPE...
Por falar em quebras de linha, alguém sabe se o Java 1.4.2 possui quebra multiplataforma (parece que o Tiger tem o %n)?
Como inserir uma quebra de linha Windows 13+10?
O "\n" que estou usando só gera o caracter 10 (quebra do Linux)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 15:38:06
|
volnei
JavaEvangelist
![[Avatar]](/images/avatar/8b16ebc056e613024c057be590b542eb.png)
Membro desde: 29/01/2003 11:36:27
Mensagens: 354
Offline
|
renato3110 wrote:
volnei, gostei de sua idéia, mas o problema é que o XML é gerado no código e não oriundo de um arquivo. E se fosse possível queria evitar criar a estrutura DOM (memória!) apenas para indentar.
O JDom tambem tem o SAXParser
|
Volnei Granado Munhoz
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 15:53:25
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Você pode me dar um exemplo simples de identação?
O JDom é API padrão do Java ou externa?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 15:54:46
|
volnei
JavaEvangelist
![[Avatar]](/images/avatar/8b16ebc056e613024c057be590b542eb.png)
Membro desde: 29/01/2003 11:36:27
Mensagens: 354
Offline
|
renato3110 wrote:Você pode me dar um exemplo simples de identação?
O JDom é API padrão do Java ou externa?
Externa!
www.jdom.org (aqui tambem tem exemplos)
|
Volnei Granado Munhoz
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 15:59:18
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Pode me dar um exemplo de indentação?
Esse JDom é API padrão do Java ou externa?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/12/2004 19:40:17
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Aí volnei, acho que consegui com o replaceAll
A lógica de iterações foi meio complicada mesmo
Estou criando uma parada para gerar XML, tipo o inverso do Apache Commons Digester, eis um exemplo:
Que gera a seguinte saída:
E chamando setIndentText(True) a saída é:
Alguém interessado?
|
|
|
 |
|
|