【发布时间】:2012-07-05 20:31:33
【问题描述】:
我目前正在处理一个需要拆分 XML 的项目。例如这里是一个示例:
<Lakes>
<Lake>
<id>1</id>
<Name>Caspian</Name>
<Type>Natyral</Type>
</Lake>
<Lake>
<id>2</id>
<Name>Moreo</Name>
<Type>Glacial</Type>
</Lake>
<Lake>
<id>3</id>
<Name>Sina</Name>
<Type>Artificial</Type>
</Lake>
</Lakes>
现在,在我的 java 代码中,理想情况下会发生这种情况,它会将 XML 拆分为 3 个用于此示例的小部分,并使用信使服务将它们中的每一个发送出去。信使服务的代码并不重要。我已经这样做了。
例如,代码将运行,将第一部分拆分为:
<Lakes>
<Lake>
<id>1</id>
<Name>Caspian</Name>
<Type>Natyral</Type>
</Lake>
</Lakes>
然后 java 代码会在消息中将其发送出去。然后它将继续进行下一部分,将其发送出去等等,直到它到达大 XML 的末尾。这可以通过 XSLT 或通过 java 来完成,这无关紧要。有什么想法吗?
为了清楚起见,我几乎知道如何使用 XSLT 分解文件,但我不知道如何分解它并一次单独发送每个部分。我也不想在本地存储任何东西,所以理想情况下它们都会被转移到字符串中并发送出去。
【问题讨论】:
-
必须是 XSLT 吗?您是否考虑过使用 SAX 解析器,只需阅读文档并将其发送到您需要的地方?
-
不一定是 XSLT,但肯定是 java 环境。任何有能力在解析之间暂停并以块的形式发送文件都是可行的方法。我认为这无论如何都不能在 XSLT 中完成。
-
如果你愿意,我会发布一个解决方案,展示如何进行拆分、创建多个文档并将它们分别保存到一个文件中。
-
那很好,虽然我不需要保存它们,但我想原理是一样的。请做。