2016-05-05 1 views
1

J'ai besoin de lire le fichier XML qui se trouve dans S3 en utilisant SAXParser. J'ai trouvé beaucoup d'exemples sur la façon de lire un normal dans S3, mais il n'y a aucun matériel lié à ma question.Lire le fichier XML dans S3 en utilisant SAXParser

La raison pour moi d'utiliser SAXParser est de parce que j'ai besoin de valider le fichier XML. Ci-dessous est l'exemple de code pour valider un fichier XML local.

Source schemaFile = new StreamSource(entitiesScriptSchema); 
System.out.println(path); 
Source xmlFile = new StreamSource(new File(path)); 
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
Schema schema = schemaFactory.newSchema(schemaFile); 
Validator validator = schema.newValidator(); 
validator.validate(xmlFile); 

Répondre

0

Vous obtiendrez un InputStream de l'objet S3 via:

InputStream s3stream = s3Client.getObject("bucket", "key").getObjectContent();

alors vous devriez être en mesure de passer le InputStream à la SAX comme tout autre Java InputStream.

+0

Vous voulez dire que le flux d'entrée est ici? Source xmlFile = new StreamSource (nouveau fichier (chemin)); –

+0

Oui changer cette ligne à 'Source xmlFile = new StreamSource (s3stream);' –

+0

Merci ~~~~~~~~~ –