1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| /**
* Retourne une Map contenant toutes les propriétées du document Office
*/
public static Map<String,String> officeProps(File file) throws IOException {
Map<String,String> props = new HashMap<String, String>();
officeProps(file, "app", props);
officeProps(file, "core", props);
return props;
}
/**
* Lit un fichier XML de properties, et ajoute les éléments dans la Map
*/
private static void officeProps(File file, String xmlName, Map<String,String> props) throws IOException {
try {
String uri = "jar:" + file.toURI() + "!/docProps/" + xmlName + ".xml";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(uri);
NodeList list = doc.getDocumentElement().getElementsByTagName("*");
final int len = list.getLength();
// il faudrait peut-être affiné cette partie :
for (int i=0; i<len; i++) {
Node node = list.item(i);
String name = node.getNodeName();
String value = node.getTextContent();
props.put(name, value);
}
} catch (ParserConfigurationException e) {
throw new IOException("XML error", e);
} catch (SAXException e) {
throw new IOException("XML error", e);
}
} |
Partager