我无法使用stax在xml标记之间获取一些csv文本数据。当我尝试读取标签之间的数据时,偶尔会添加额外的换行符:
我有一个XML文件,其中包含许多我尝试导入java程序的csv部分。具体来说,对于包含以下内容的XML文件:
<layer name="Foreground" width="10" height="5">
<data encoding="csv">
0,6,0,0,0,0,0,0,0,0,
0,6,0,0,0,0,5,0,0,0,
0,2,0,0,0,0,2,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0
</data>
</layer>
我正在尝试将csv数据导入数组(或者至少是一个String,我可以从那里开始。)当我尝试通过事件阅读器读取数据时
if (startElement.getName().getLocalPart() == "data")
{
System.out.println("Parsing Data for Layer " + layerCounter);
while (attributes.hasNext())
{
Attribute attribute = attributes.next();
switch (attribute.getName().toString())
{
case ("encoding"):
System.out.println("\tEncoding = " + attribute.getValue());
break;
default:
break;
}
}
event = eventReader.nextEvent();
while(!event.isEndElement())
{
System.out.println(event.asCharacters().getData());
event = eventReader.nextEvent();
}
layerCounter++;
}
这几乎是我正在尝试但我在输出中获得额外的换行符。对于上面的文件,我得到:
Parsing Data for Layer 1
Encoding = csv
0,6,0,0,0,0,0,0,0,0,
0,6,0,0,0,0,5,0,0,0,
0,2,0,0,0,0,2,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0
我想知道是否有人可能知道这里发生了什么。
我仍然试图围绕XML解析,并且可能有更好的方法来以纯格式获取这些数据。或者,我可以编写XML文件以将数据存储为XML标记本身,但认为csv格式更方便。
谢谢,
安德鲁