Привет. Есть txt файл со след. содержанием:
| Код | engMusic Anastasia-Te_Iert.mp3 Calvin_Harris_and_Alesso_ft_Hurts-Under_Control.mp3 Oceana-Endless_Summer_Remix.mp3 The_Wanted-Show_Me_Love.mp3 rusMusic basta-feat-smoki-mo-kamennye-cvety-solovey.su.mp3 maks-barskih-zdes-i-seychas.mp3
|
Мне это все надо в xml записать, вот таким образом:
| Код | <Music> <Catalog> <CATALOG_NAME> engMusic </CATALOG_NAME> <FILE_NAME> Anastasia-Te_Iert.mp3 </FILE_NAME> <FILE_NAME> Calvin_Harris_and_Alesso_ft_Hurts-Under_Control.mp3</FILE_NAME> <FILE_NAME> Oceana-Endless_Summer_Remix.mp3</FILE_NAME> <FILE_NAME> The_Wanted-Show_Me_Love.mp3 </FILE_NAME> </Catalog> <Catalog> <CATALOG_NAME> rusMusic </CATALOG_NAME> <FILE_NAME> basta-feat-smoki-mo-kamennye-cvety-solovey.su.mp3</FILE_NAME> <FILE_NAME> maks-barskih-zdes-i-seychas.mp3</FILE_NAME> </Catalog> </Music>
|
Я использую DOM, вот код:
| Код | public class ConvertToXML { BufferedReader in; StreamResult out; Document xmlDoc; Element root; public void convertToXml() { try { in = new BufferedReader(new FileReader("content.txt")); out = new StreamResult("dir.xml"); initXML(); String str; while ((str = in.readLine()) != null) { process(str); } in.close(); writeXML(); } catch (Exception ex) { ex.printStackTrace(); } } public void initXML() throws ParserConfigurationException { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); DOMImplementation impl = dBuilder.getDOMImplementation(); xmlDoc = impl.createDocument(null, "Music" , null); root = xmlDoc.getDocumentElement(); } public void process(String s) { String[] elements = s.split("\\r?\\n"); Element e0 = xmlDoc.createElement("CATALOG"); Element e1 = xmlDoc.createElement("CATALOG_NAME"); Node n1 = xmlDoc.createTextNode(elements[0]); e1.appendChild(n1);
Element e2 = xmlDoc.createElement("FILE_NAME"); Node n2 = xmlDoc.createTextNode(elements[1]); e1.appendChild(n2); e0.appendChild(e1); e0.appendChild(e2); root.appendChild(e0); } public void writeXML() throws TransformerConfigurationException, TransformerException { DOMSource domSource = new DOMSource(xmlDoc); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yse"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); //pretty output transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.setOutputProperty(OutputKeys.INDENT, "yse"); transformer.transform(domSource, out); } }
|
Проблема в том, что в process() выскакивает Exception: ArrayIndexOutOfBoundsException: 1. Я так понял это я обращаюсь к элементу которого не существует или который выходит за пределы, но не пойму почему это выдает то? Там же вроде все на своих местах
Буду рад любому совету  |