非常に単純な質問がありますが、解決できません。助けていただければ幸いです。
JDOM で XML ファイルの行全体を読み取るにはどうすればよいですか? タグと属性が必要で、それを 1 つの配列に保存したいと考えています。これどうやってするの?
package converter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.JOptionPane;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.CSVWriter;
import org.jdom2.Document;
import org.jdom2.input.*;
import org.jdom2.output.*;
public class Converter {
public List<Entry> xmlconvert(String pfad, String pfad2, String bitmask){
List<Entry> entry = new ArrayList<Entry>();
List<Entry> wrongEntries = new ArrayList<Entry>();
String wrongEntryIndexes = "";
String[] languages = {"en", "pt", "it", "fr", "es", "de", "zh"};
try{
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(pfad);
JOptionPane.showMessageDialog(null, "Converting successful.");
return entry;
ご覧のとおり、それは始まりに過ぎません >.<
CSV ファイルの場合、次のようにしました。
public List<Entry> convert(String pfad, String pfad2, String bitmask) {
List<Entry> entry = new ArrayList<Entry>();
List<Entry> wrongEntries = new ArrayList<Entry>();
String wrongEntryIndexes = "";
String[] languages = {"en", "pt", "it", "fr", "es", "de", "zh"};
try {
CSVReader reader = new CSVReader(new FileReader(pfad), ';', '\"', 1);
String [] nextLine;
while ((nextLine = reader.readNext()) != null) {
Entry entryi = new Entry();
entryi = new Entry();
entryi.termEntryID = nextLine[0];
entryi.termEntryUUID = nextLine[1];
entryi.termID = nextLine[2];
entryi.termUUID = nextLine[3];
entryi.term = nextLine[4];
entryi.status = nextLine[5];
entryi.language = nextLine[6];
entryi.domains = nextLine[7];
entryi.morphosyntacticRestriction = nextLine[8];
entryi.variantsConfiguration = nextLine[9];
entryi.isHeadTerm = nextLine[10];
entryi.checkInflections = nextLine[11];
entryi.frequency = nextLine[12];
entryi.createdBy = nextLine[13];
entryi.createdOn = nextLine[14];
entryi.changedBy = nextLine[15];
entryi.changedOn = nextLine[16];
entryi.context = nextLine[17];
entryi.crossReference = nextLine[18];
entryi.definitionDE = nextLine[19];
entryi.definitionEN = nextLine[20];
entryi.example = nextLine[21];
entryi.externalCrossReference = nextLine[22];
entryi.gender = nextLine[23];
entryi.geographicalUsage = nextLine[24];
entryi.imageURL = nextLine[25];
entryi.note = nextLine[26];
entryi.numerus = nextLine[27];
entryi.partOfSpeech = nextLine[28];
entryi.processStatus = nextLine[29];
entryi.sourceOfDefinition = nextLine[30];
entryi.sourceOfTerm = nextLine[31];
entryi.termType = nextLine[32];
entry.add(entryi);
}
しかし、CSVファイルの場合、同じ構造で書き直すのは簡単です。すべての変数を異なる配列に保存してから、それらをチェックします。