在java Stax中获取XML标记之间的CSV数据

时间:2013-10-22 21:08:48

标签: java xml

我无法使用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格式更方便。

谢谢,

安德鲁

0 个答案:

没有答案