没有自动方法可以将一个大 xml 拆分为几个较小的 xml。
作为一种极端的简化,单个 xml 表示具有属性的单个对象。
将其拆分为不同的 xml 意味着将单个对象拆分为多个对象。这不是可以自动完成的。
让我们举一个简单的例子。想象一下有这个xml
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
你是怎么分割的?以下是拆分它的有效方法吗? (如何拆分和重组是业务决策)。
<note>
<to>Tove</to>
<from>Jani</from>
</note>
<note>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
如果问题与将大 xml 拆分为较小的 xml 无关,而是将单个大文件拆分为较小的文件,您可以将其拆分为
<note>
<to>Tove</to>
<from>Jani</from>
和
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
但如果问题是通过 Internet 发送文件的大小或保存时节省空间,请考虑压缩它。压缩 xml 文件会产生非常小的压缩结果。最终您可以拆分压缩文件。
如果问题在于将整个文件保存在内存中,请不要这样做。使用 SAX 解析器而不是 DOM 解析器,这样您就可以将原始 xml 的一小部分保存在内存中。 Sax parser 是:
SAX(XML 的简单 API)是一种用于解析 XML 文档的事件驱动在线算法,其 API 由 XML-DEV 邮件列表开发。@987654322 @SAX 提供了一种从 XML 文档中读取数据的机制,它可以替代文档对象模型 (DOM) 提供的机制。 DOM 对整个文档进行操作——为方便用户构建 XML 文档的完整抽象语法树——SAX 解析器按顺序对 XML 文档的每一部分进行操作,发出解析事件,同时进行一次传递[需要澄清] 通过输入流。