我无法使用 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 数据导入一个数组(或至少一个字符串,我可以从那里开始。)当我尝试通过事件阅读器读取数据时
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 格式更方便。
谢谢,
安德鲁