Boa noite galera eu to com o seguinte proleeminha e gostaria da ajuda de vcs. E o seguinte… eu recebo uma String formata em HTML e tenho q formatar ela da seguinte maneira, segue um exemplo:
Dessa forma eh q eu estou querendo mostrar ela apos ela ser formatada…(essa situação eh mostrada apos a execucao do problema), tentei bastante pessoal… bastante mesmo mas nao consegui… ainda sou iniciante em Java e por isso venho aki pedir a ajuda de vcs!!
eh isso aew… obrigado a todos q puderem e tb nao puderem me ajudar… valeu e boa noite!
Você quer quebrar a String em linhas e identar ela?
oO Caramba… Isso é porque voce precisa mostrar esse resultado pro usuário? oO… Boa sorte. Fiquei curioso…
diogobr
Vai dar um pouco de trabalho, mas normal.
As tags usadas só serão essas ?
Pq é bom observar que cada tag html tem um tratamento.
No
vc finaliza ela na mesma linha.
Já com o
é diferente
Dê uma olhada na classe java.lang.String que ela que te ajudará.
Vlw
DavidUser
Levei cerca de 20 min mais enfim terminei:
publicclassFormatandoHTML{publicstaticvoidmain(String[]args){//str é a String que você recebe desorganizada.Stringstr="<form name=\"form\" method=\"post\"><table><tr><td>Algum dado</td><td>Outro dado</td></tr><tr><td>Mais um dado</td><td>Mais um outro dado</td></tr></table></form>";Stringimp="Código Formatado: \t\tDavidKScorp.\n\n",parte;//leitura:for(inti=0;i<(str.split(">")).length;i++){if(tipo(str.split(">")[i]).equals("<form")){imp+=str.split(">")[i]+">\n";}elseif(tipo(str.split(">")[i]).equals("</form")){imp+=str.split(">")[i]+">\n";}elseif(tipo(str.split(">")[i]).equals("<table")){imp+="\t"+str.split(">")[i]+">\n";}elseif(tipo(str.split(">")[i]).equals("</table")){imp+="\t"+str.split(">")[i]+">\n";}elseif(tipo(str.split(">")[i]).equals("<tr")){imp+="\t\t"+str.split(">")[i]+">\n";}elseif(tipo(str.split(">")[i]).equals("</tr")){imp+="\t\t"+str.split(">")[i]+">\n";}elseif(tipo(str.split(">")[i]).equals("<td")){imp+="\t\t\t"+str.split(">")[i]+">";}elseif(tipo(str.split(">")[i]).equals("</td")){imp+="\t\t\t"+str.split(">")[i]+">\n";}else{imp+=str.split(">")[i]+">\n";}}//imprime a String formatada:System.out.println(imp);}publicstaticStringtipo(Strings){returns.split(" ")[0];}}
Testa ai, mada aver...
Qualquer erro me passa onde foi e eu faço a correção do bug.
DavidUser
vou resaltar que qualquer outro argumento que não seja ,
,
ou
deve ser adicionado ao código me passa os que quer q adicione e eu ajudo
ok?
DavidUser
mais acho q ja ta bem redondinho, so complica se o novo método tambem implemente formatação como
e
DavidUser
Esse ai vale uns 300 conto né!
kkkkkkkkkkkkkkkkkkkkkkkkkkkk
kkkkkkkkkkkkkkkkk
kkkkkkkkkkk
kkkkkkk
kkkk
kk
k
mais valeu o aprendizado
Henrique_Fernandes
valeuu galera vcs sao “feras” mesmo uheauheahuea…
mas eh isso aew…mas agora eu tenho q tornar ele o mais generico possivel pow… ou seja podem vir mais tags diferentes do q essas q eu passei como exemplo e eu tenho q trata-las sempre … mas eh isso ai… agradeço a todos q me ajudaram!!
Henrique_Fernandes
alguem q saiba resolver isso usando StringBuffer ?
agradeço a ajuda de vcs!
T
thingol
Se o seu HTML é na verdade um XHTML (ou seja, um HTML cujos tags estão todos bem-formados, e pode ser lido como um XML), você pode até ler o tal trecho como um XML DOM Document, e então indentar o XML de volta.
É que nem sempre o HTML está bem-formado.
DavidUser
ai tp, so tem de adicionar as formatações das tags novas, mas se a tag não segue formatação como um funciona normal sacou;
testa ai
oq vier de novo vc insere… não existem programas genéricos que resolvam bem esta função.
“Cara não adianta tentar, não existe um modo para formatar as tags, se você não insere a formatação de cada tag!”
Teste, quando algo de novo aparece para o programa, de suporte… 1.1, 1.2, 1.3; até ele atender completamente os requisitos.
DavidUser
Me passa a lista das tags e a formatação q quer e eu termino.
Lembrando:
o programa vê <td […]> igual a
.
O
ozix
publicclassXMLUtil{publicstaticDocumentstringToDom(StringxmlSource)throwsSAXException,ParserConfigurationException,IOException{DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();returnbuilder.parse(newInputSource(newStringReader(xmlSource)));}publicstaticStringformat(StringxmlSource)throwsIOException,ParserConfigurationException,SAXException{Documentdocument=stringToDom(xmlSource);OutputFormatof=newOutputFormat();of.setIndent(2);of.setOmitXMLDeclaration(true);Writerwriter=newStringWriter();XMLSerializerserializer=newXMLSerializer(writer,of);serializer.serialize(document);returnwriter.toString();}publicstaticvoidmain(String[]args)throwsIOException,ParserConfigurationException,SAXException{Stringseries="<form name=\"form\" method=\"post\"><table><tr><td>Algum dado</td><td>Outro dado</td>"+"</tr><tr><td>Mais um dado</td><td>Mais um outro dado</td></tr></table></form>";Stringresult=XMLUtil.format(series);System.out.print(result);}}