背景
我正在编写一个 xml 转换器,它从文本文件中获取输入并将它们转换为 xml。在文本文件中,每条记录由一行表示,每个字段用它们之间的制表符表示。所以在文本文件中,两条记录看起来像:
fieldA fieldB fieldC
fieldA fieldB fieldC
问题
我正在将文本文件加载到 bufferedReader 中,并使用 StAX 实现 WoodStox 创建 XML。我可以看到我从我的 getColumnValue 方法中获得了正确的记录数据。但由于某种原因,WoodStox 一遍又一遍地写入第一条记录,而不是通过 while 循环获取每次传递的数据。由于我知道输入(来自 getColumnValue)是正确的,我只能得出结论,问题出在 Woodstock 但到目前为止我还无法理解为什么......
代码:
while ((strRead = buffer.readLine()) != null) {
String recordInputs[] = strRead.split("\t");
writer.writeStartElement("Record");
writer.writeStartElement("FIELDA");
writer.writeCharacters(getColumnValue("BSTYPE", tableColumns, recordInputs));
writer.writeEndElement();
writer.writeStartElement("FIELDB");
writer.writeCharacters(getColumnValue("BSDDT", tableColumns, recordInputs));
writer.writeEndElement();
writer.writeStartElement("FIELDC");
writer.writeCharacters(getColumnValue("BSACTIVE", tableColumns, recordInputs));
writer.writeEndElement();
writer.writeEndElement();
}
writer.writeEndElement();
writer.writeEndDocument();
writer.flush();
writer.close();