Lucas_Cavalcanti 23 de jun. de 2008
tanto no sax quanto no dom é possível usar Readers e Writers pra fazer as operações…
no caso do SAX vc poderia usar algo do tipo:
String str = "<objeto><dado id= "tituloQuadro" > SITUAÇÃO DOS ACESSOS</dado><dado id= "numeroFicha" > 27</dado><objeto> ";
Source src = new StreamSource(new StringReader(str));
//faz as operações de leitura usando esse source
e é basicamente isso…
Pedrosa 23 de jun. de 2008
warley 23 de jun. de 2008
Eu consegui fazer deste forma:
String str = "<objeto><dado id=\"exigeObservacao\">SITUçao DOS ACESSOS</dado><dado>Teste Teste</dado></objeto>" ;
DocumentBuilderFactory dbf = DocumentBuilderFactory . newInstance ();
DocumentBuilder db = dbf . newDocumentBuilder ();
ByteArrayInputStream is = new ByteArrayInputStream ( str . getBytes ());
Document strXML = db . parse ( is );
NodeList list = strXML . getElementsByTagName ( "dado" );
for ( int i = 0 ; i & lt ; list . getLength (); i ++ ){
Node property = list . item ( i );
NamedNodeMap namedNodeMap = property . getAttributes ();
String propertyValeu = property . getTextContent ();
System . out . print ( property . getNodeName () + " " );
System . out . print ( namedNodeMap . getLength () + " " );
System . out . println ( propertyValeu );
}
Mas estou com erro de causado pelo Ç ou acentos:
[ Fatal Error ] : 1 : 40 : Invalid byte 2 of 3 - byte UTF -8 sequence .
Exception in thread "main" org . xml . sax . SAXParseException : Invalid byte 2 of 3 - byte UTF -8 sequence .
at com . sun . org . apache . xerces . internal . parsers . DOMParser . parse ( DOMParser . java : 264 )
at com . sun . org . apache . xerces . internal . jaxp . DocumentBuilderImpl . parse ( DocumentBuilderImpl . java : 292 )
at javax . xml . parsers . DocumentBuilder . parse ( DocumentBuilder . java : 98 )
at lerxml . Class1 . main ( Class1 . java : 33 )
Alguem sabe como eu posso resolver este erro?
Obrigado.