【问题标题】:Array XML encoding数组 XML 编码
【发布时间】:2015-07-28 16:45:19
【问题描述】:

我正在尝试将 Object[][] 数组编码为 XML 文件,但忽略了一些 null 元素。

例如在编码时:

private Object[][] tabledata = {
        { "1", "1", "2001", "101", "151" },
        { "2", "2", "2002", "102", "152" },
        { "3", "3", "2003", "103", "153" },
        { "4", "4", "2004", "104", "154" },
        { null, null, null, null, null }, };

它应该像这个数组一样对其进行编码:

private Object[][] tabledata = {
        { "1", "1", "2001", "101", "151" },
        { "2", "2", "2002", "102", "152" },
        { "3", "3", "2003", "103", "153" },
        { "4", "4", "2004", "104", "154" }, };

我尝试使用ArrayUtils.removeElement(Object o) 删除空元素,但它似乎只适用于一维数组,XStream 也没有多大帮助。

我是否应该放弃编码器并使用 org.w3c.dom.Node 和 Java 解析器套件的其余部分逐个元素?

【问题讨论】:

    标签: java xml encode


    【解决方案1】:

    我成功了。

    转换为ArrayList,删除nulls,使用ArrayList 创建新的更小的数组,现在我可以对其进行编码:)。

    ArrayList<Object> mid = new ArrayList<Object>();
    int rows = tabledata.length;
    int cols = tabledata[0].length; // assuming rows >= 1
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            if (tabledata[i][j] != null) {
                mid.add(tabledata[i][j]);
            } else {
    
            }
    
        }
    }
    for (int i = 0; i < mid.size(); i++) {
        mid.remove(null);
    }
    System.out.println(mid);
    Object[][] inter = new Object[tabledata.length - 1][tabledata[0].length];// one
                                                                                // row
                                                                                // smaller
    System.out.println(tabledata.length - 1);
    System.out.println(tabledata[0].length);
    int count = 0;
    for (int i = 0; i < inter.length; i++) {
        for (int j = 0; j < inter[0].length; j++) {
            inter[i][j] = mid.get(count);
            count++;
        }
    }
    
    tabledata = null;
    tabledata = inter;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2011-10-21
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多