【发布时间】:2019-06-24 07:45:20
【问题描述】:
我有一个表示为List<String[]> 的表。列表的第一个元素是标题,其他元素是一行。我不提前知道 List 的结构,所以创建一个包含属性/字段的类不是一个选项。
假设我有一个如下所示的表(我们称之为“数据库”):
Age|Name|Sex
23 |John|Male
19 |Sam |Female
18 |Alex|Male
列表的第一个元素是一个字符串数组,如下所示: ["Age", "Name", Sex"] 而行看起来像这样 ["23", "John", "Male"]
如何获得如下所示的 XML 输出:
<Table name="Database">
<Row name="1">
<Item name="Age">23</Item>
<Item name="Name">John</Item>
<Item name="Sex">Male</Item>
</Row>
<Row name="2">
<Item name="Age">19</Item>
<Item name="Name">Sam</Item>
<Item name="Sex">Female</Item>
</Row>
<Row name="3">
<Item name="Age">18</Item>
<Item name="Name">Alex</Item>
<Item name="Sex">Male</Item>
</Row>
基本上,我收到了一个表格的输入,我运行我的算法并得到一个列表作为返回,第一个元素是标题。我尝试过使用 XMLMapper,它可以快速将其映射到 XML,但我没有得到我想要的格式/结构。
public String createXMLObject() throws IOException {
List<String[]> table = extractData(); //extractData() is my custom method
ObjectMapper mapper = new XmlMapper();
String result = mapper.writeValueAsString(table);
mapper.writeValue(new File("test.xml"), table);
System.out.println(result);
return result;
}
【问题讨论】:
-
您确定要每个
XML Node命名为Node吗?不是<table><item><age>18</age>....</item></table>? -
@MichałZiober 当然,项目对我来说很好用。它会更新它。
-
创建类
Table、Row和Item,然后将List<String[]>转换为对象,最后将Table对象转换为XML。 ObjectMapper 的目的是转换 objects,因此您必须首先创建与您要生成的 XML 匹配的对象。