18/01/2008, 01:55
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 17 años, 1 mes Puntos: 0 | |
Re: Leer XML en Java Hola,
Sigo sin tener muy claro como lo tengo que hacer :(.
El código que me has puesto tengo unas dudas:
public class validate
{
static public class ResolverImpl implements EntityResolver
{
public InputSource resolveEntity(String publicId, String
systemId)
throws SAXException, IOException
{
System.out.println("resolving " + systemId + " : " +
publicId);
System.out.flush();
return new InputSource(new FileInputStream(
"c:\\somedirectory\\" + systemId));
}
}
static class ErrorHandlerImpl implements ErrorHandler
{
List errors = new LinkedList();
public void fatalError(SAXParseException e)
{
errors.add(e);
}
public void warning(SAXParseException e)
{
}
public void error(SAXParseException e)
{
errors.add(e);
}
boolean hasErrors()
{
if (errors.size() > 0)
return true;
else
return false;
}
void printErrors()
{
Iterator it = errors.iterator();
while (it.hasNext())
System.out.println(it.next());
}
}
static void validateContents(byte[] contents)
{
try
{
ErrorHandlerImpl handler = new ErrorHandlerImpl();
ByteArrayInputStream stream = new
ByteArrayInputStream(contents);
DocumentBuilderFactory docBuilderFactory
= DocumentBuilderFactory.newInstance();
docBuilderFactory.setValidating(true);
docBuilderFactory.setNamespaceAware(true);
DocumentBuilder docBuilder =
docBuilderFactory.newDocumentBuilder();
docBuilder.setErrorHandler(handler);
docBuilder.setEntityResolver(new ResolverImpl());
Document document = docBuilder.parse(stream);
Element rootElement = document.getDocumentElement();
System.out.println("errors = " + handler.hasErrors());
handler.printErrors();
}
catch (ParserConfigurationException e)
{
System.out.println("parse error:" + e);
}
catch (SAXException e)
{
System.out.println("parse error:" + e);
}
catch (IOException e)
{
System.out.println("parse error:" + e);
}
}
public static void main (String[] args)
{
try
{
validateContents(Util.readFile(args[0]));
}
catch (Exception e)
{
System.out.println("exception:" + e);
}
}
}
En la clase public InputSource resolveEntity(String publicId, String systemId), publicId y systemId que valores tienen que tener, o que tienen que tener??
En la clase static void validateContents(byte[] contents), contents que valor o parametro tiene que tener??
Dentro de la clase static void validateContents(byte[] contents), cuando se declara Element rootElement = document.getDocumentElement();, rootElement para que se utiliza??
En general me gustaría que me explicaras como funciona la clase en sí, que no me aclaro mucho.
Muchas gracias por responder.
Un saludo. |