Чтение текстового файла и преобразование в XMLJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Чтение текстового файла и преобразование в XML

Сообщение Anonymous »

У меня есть требование, чтобы текстовый файл выглядел так, как показано ниже

Код: Выделить всё

XXX Czech Republic s.r.o.
Xe XX? 559
252 67 XXX??ice

Phone: +000 000 003 300

========================================= Remittance Advice ==============================================================
xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxx
CZ
==========================================================================================================================

Attached is a cheque in respect of the 3 COD(s) for the shipments noted below.

Tracking Number                    Recipient                     Reference         Cod Amount                   Remittance
13699302850434                     xxxxxxxxxxxxxxxxxx                              CZK 17322.00        CZK 17322.00
xxxxxxxxxxxxx
13699302969163                     xxxxxx                                          EUR 1424.00         CZK 1424.00
xxxxxxxxxxxxxx
13699302965778                     xxxxxxxxxx                                      EUR 4720.00         CZK 4720.00
xxxxxxxxxx
____________
Total remitted        23466.00
============
Мне нужно прочитать данные под этими столбцами заголовков, получить некоторые сведения из БД, используя эту информацию, и, наконец, преобразовать в XML.
Я нет эксперт по Java, поэтому я придумал приведенную ниже логику, но все, что она делает, это разбивает данные, но как мне читать отдельные столбцы.

Код: Выделить всё

private static void processTextFile(File attachment, Date emailDate) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(attachment)));

String line = null;
String[] headers = null;
String[] data = null;
Map contents = new HashMap();

if ((line = in.readLine()) != null) {
headers = line.split("\t");
}
for(String h : headers){
contents.put(h, new ArrayList());
}
while ((line = in.readLine()) != null && line.startsWith("Attached is a cheque")) {
data = line.split("\t");
if(data.length != headers.length){
throw new Exception();
}
for(int i = 0; i < data.length; i++){
contents.get(headers[i]).add(data[i]);

}
}
}
Выходной формат XML

Код: Выделить всё


filename
YYYYMDD
XXX Czech Republic s.r.o.

1Z763W8Y7991338730
MICXXXXLES EE
24011921
1
EUR
1337.01
CZK
33317.09
37162537
10084189


33317.09
1


Я создал два класса BO, соответствующие приведенному выше выходному формату XML

Код: Выделить всё

public class CODTextFileBO {

private String trackingNumber;
private String recipient;
private String reference;
private Float codAmount;
private String currencyCode;

public String getTrackingNumber() {
return trackingNumber;
}
public void setTrackingNumber(String trackingNumber) {
this.trackingNumber = trackingNumber;
}
public String getRecipient() {
return recipient;
}
public void setRecipient(String recipient) {
this.recipient = recipient;
}
public String getReference() {
return reference;
}
public void setReference(String reference) {
this.reference = reference;
}
public Float getCodAmount() {
return codAmount;
}
public void setCodAmount(Float codAmount) {
this.codAmount = codAmount;
}
public String getCurrencyCode() {
return currencyCode;
}
public void setCurrencyCode(String currencyCode) {
this.currencyCode = currencyCode;
}

}

public class DataFromDBTableBO {

private String accountNumber;
private String invoiceNumber;

public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getInvoiceNumber() {
return invoiceNumber;
}
public void setInvoiceNumber(String invoiceNumber) {
this.invoiceNumber = invoiceNumber;
}

}
Как прочитать текстовый файл, где данные начинаются где-то посередине, и как преобразовать его в XML. Любые предложения приветствуются. ТИА!

Подробнее здесь: https://stackoverflow.com/questions/788 ... g-into-xml
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»