0

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

谢谢,

安德鲁

4

0 回答 0