java - 从 java List 对象创建 XML 的最有效方法

标签 java xml-serialization xstream apache-camel xmlmapper

我正在努力将 CSV 转换为 XML,尽管我有很多方法可以做到这一点,但我的要求是这样实现,以便将来可以在不更改任何代码的情况下更改映射。 所以我们使用以下方法。 我们使用 Apache Camel 进行集成,因此 CSV 通过 Camel 进行开箱即用的转换,并以 List<List<String>> 的形式提供。 数据类似于

{[header1,header2,header3],[1,2,3],[2,4,5]}

我需要将此列表数据转换为XML(这是定义的形式),但由于我无法使用java映射,所以计划做类似的事情 使用 XStream 将此列表转换为平面 XML 文件并使用 xslt 将原始 XML 文件映射到 xslt,但是当我使用 XStream 将 List 转换为 XML 时,它给出以下输出

<list>
  <java.util.Arrays_-ArrayList>
    <a class="string-array">
      <string>Quantity</string>
      <string>Price</string>
      <string>Total</string>
      <string>Date</string>
      <string>ID</string>
      <string>Name</string>
      <string>Ref#</string>
    </a>
  </java.util.Arrays_-ArrayList>
  <java.util.Arrays_-ArrayList>
    <a class="string-array">
      <string>4</string>
      <string>1.13</string>
      <string>4.52</string>
      <string>9/4/2008</string>
      <string>275</string>
      <string>Blue Ink</string>
      <string>49385730</string>
    </a>
  </java.util.Arrays_-ArrayList>
  <java.util.Arrays_-ArrayList>
    <a class="string-array">
      <string>5</string>
      <string>2.16</string>
      <string>2.16</string>
      <string>8/3/2008</string>
      <string>229</string>
      <string>Red Ink</string>
      <string>20549348</string>
    </a>

我的示例 CSV 是

Quantity,Price,Total,Date,ID,Name,Ref#
4,1.13,4.52,9/4/2008,275,Blue Ink,49385730
5,2.16,2.16,8/3/2008,229,Red Ink,20549348

因此似乎无法使用 XSLT 将此原始 XML 映射到所需的 XML。 有没有办法将此列表数据转换为某种更美观的 XML 格式,以便我们可以使用 XSLT 映射该 XML 以避免任何代码更改。 或者是否有其他更有效的方法将此列表转换为 XML 结构

提前致谢

最佳答案

生成的 XML 的描述方式( header 成为元素标签),如果没有自定义编程,确实很难生成。最好的选择是使用 DOM4J 自己编写一些代码。

关于java - 从 java List 对象创建 XML 的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791472/

相关文章:

java - 异常 : "Name Not Found" When connecting to TIBCO EMS using Tibco Web Messaging

java - 满足 Java 的返回要求

c# - 如何使用 .NET XmlSerializer 使值类型可为空?

java - 如何禁用 PrettyPrint xstream xml 并仍然添加样式表和序言?

java - 为 XStream 中不在 XML 中的字段设置默认值

java - XStream不支持自定义转换器交叉委托(delegate)?

java - 在 PreparedStatement 中绑定(bind)空变量

Java:String.contains(string) 函数在 Java 中如何工作?

java - 使用序列化是个好主意吗?

c# - 在 XmlWriter 中省略 XmlDeclaration 并实现 IXmlSerializable