【问题标题】:Java - stAX - Creating .xml from StringJava - stAX - 从字符串创建 .xml
【发布时间】:2016-03-04 09:33:02
【问题描述】:

我需要创建一个单一且可能非常大的 .xml 文件,而我的研究让我意识到了 stAX。我花了一段时间试图弄清楚它,但我不确定它是否真的适合这项工作。

所以基本上,我有一个字符串,这个字符串包含一个格式化的 XML 消息。因此,从这条消息中,我需要能够将其编写为格式良好的 .xml 文件。这是一个示例 XML 字符串:(不完整,最终的字符串要复杂得多)

<RISKADDRESS><ASINPUT><HOUSENR/><HOUSENAME/><STREET1>86 Warren Avenue</STREET1><STREET2/><DISTRICT/><CITY>Southampton</CITY><COUNTY>GB</COUNTY><POSTCODE>SO16 6AE</POSTCODE><COUNTRY>GB</COUNTRY></ASINPUT></RISKADDRESS>

顺便说一句,我还可以将我的数据作为 HashMap 获取。

谁能指出我正确的方向,这个过程涉及哪些步骤?到目前为止,我遇到的所有教程都没有真正阐明我的问题。下面是一个例子,说明我在被卡住之前必须去哪里。

XMLOutputFactory factory = XMLOutputFactory.newInstance ();
XMLStreamWriter writer = new IndentingXMLStreamWriter (factory.createXMLStreamWriter (out));

writer.writeStartDocument ("UTF-8", "1.0");

//Do i have to iterate over my String in some way here?


writer.writeEndDocument ();

writer.flush ();
writer.close ();

编辑:我应该补充一点,理想情况下我需要使此代码可重用,因此指定确切的属性名称等并不是一个真正的选择。

【问题讨论】:

  • 如果您已经有 String 按预期表示您的 XML,那么您不需要使用 StAX - 只需将其打印到文件中即可。但是,如果 XML 格式不正确,您可能会或可能不会对 StAX 感到幸运。
  • 看起来像 How to pretty print XML from Java? 的副本
  • 我明天会再检查一下 Uday,我确实需要确保我使用的任何方法,它的完成方式是我可以保持文件打开,但将当前流刷新到.xml 文件,因为文件的潜在大小。我还需要一种注入头信息的方法,在文件的开头,在写入字符串之前,刷新数据,然后在额外处理后返回以将更多数据写入同一个文件,如果这是可能的通过这个方法,那就太好了。

标签: java xml stax xmlstreamwriter


【解决方案1】:

我无法发表任何评论,但您检查过这个问题吗? how to parse xml to java object?

可能是重复的?

【讨论】:

  • 嗨,我确实看过了,但是我想要做的是不同的。我正在写一个已经定义的 .XML 消息(包含在一个字符串中)到硬盘上的一个文件,我不想把它写到那个过程之间的一个对象。不过谢谢你的回复。
猜你喜欢
  • 2016-05-14
  • 2012-03-19
  • 2012-11-07
  • 2016-03-10
  • 2011-06-06
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
相关资源
最近更新 更多