Как преобразовать текстовый файл в XML
Привет,
Меня попросили преобразовать текстовый файл в формат
10_1 а;б&ЛТ;&ГТ;компакт&ЛТ;&ГТ;эф
быть преобразованным в xml как
<ID> 10_1 </ID>
<имя>
<Name1> a </Name1>
<Name2> b </Name2>
</имя>
&ЛТ;Деф&ГТ; компакт &ЛТ;/деф&ГТ;
&ЛТ;вен&ГТ; эф &ЛТ;/преп&ГТ;
У меня возникли проблемы с разбором первой части проблемы, разделением идентификатора и имени.
Я прилагаю код, который я написал до сих пор, и, пожалуйста, не публикуйте предложения или комментарии о том, как это сделать, я изучил много примеров, но у меня постоянно возникают проблемы с ошибками.
Что я уже пробовал:
public class ToXML { BufferedReader in; StreamResult out; TransformerHandler th; AttributesImpl atts; public static void main(String args[]) { new ToXML().doit(); } public void doit() { try { in = new BufferedReader(new FileReader("E.txt")); out = new StreamResult("E.xml"); initXML(); String str; while ((str = in.readLine()) != null) { process(str); } in.close(); closeXML(); } catch (IOException | ParserConfigurationException | TransformerConfigurationException | SAXException e) { } } public void initXML() throws ParserConfigurationException, TransformerConfigurationException, SAXException { SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); th = tf.newTransformerHandler(); Transformer serializer = th.getTransformer(); serializer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1"); serializer.setOutputProperty( "{http://xml.apache.org/xslt}indent-amount", "4"); serializer.setOutputProperty(OutputKeys.INDENT, "yes"); th.setResult(out); th.startDocument(); atts = new AttributesImpl(); th.startElement("", "", "Author", atts); } public void process(String s) throws SAXException { String[] elements = s.split("<>;"); atts.clear(); th.startElement("", "", "Data", atts); th.startElement("", "", "Bibliofile", atts); th.characters(elements[0].toCharArray(), 0, elements[0].length()); th.endElement("", "", "Bibliofile"); th.endElement("", "", "Data"); } public void closeXML() throws SAXException { th.endElement("", "", "Author"); th.endDocument(); } }
Maciej Los
Улучшите свой вопрос и обеспечьте правильную структуру xml-данных
Richard MacCutchan
- У меня постоянно возникают проблемы с ошибками."
Ну, боюсь, здесь никто не догадается, что это такое.
Souvik Bhattacharya
Я думаю, что я очень четко разместил свой запрос выше. Сначала прочтите все целиком. Вы поймете, что я имел в виду.
Richard MacCutchan
Извините, но вы до сих пор не объяснили, что это за "проблемы с ошибками", и у нас нет возможности догадаться. Если ваш код не работает, то, пожалуйста, объясните, что происходит не так и где возникают ошибки.
Souvik Bhattacharya
Я хочу отделить свой текстовый файл в приведенном выше формате xml. Код, который я написал, дает xml-версию текста, но ничего близкого к тому формату, который я упомянул. Что же мне делать?
Richard MacCutchan
У меня есть предложение. Забудьте на минуту о XML. Просто напишите код, чтобы разделить строку(ы) на части, которые вас интересуют, и распечатайте их по мере обработки. Таким образом, вы действительно можете увидеть, правильно ли работает ваш синтаксический анализ. Если у вас есть правильные элементы в правильном порядке, то добавление кода для создания XML должно быть простым делом.