Ruby 将大型XML拆分为多个文件

Ruby 将大型XML拆分为多个文件,ruby,xml,nokogiri,Ruby,Xml,Nokogiri,我只是想知道如何分割Nokogiri的大型XML输出 例如,我用数据填充了Nokogiri::XML,现在我想将所有这些数据存储在单独的文件中,每个文件的大小不超过10MB 从注释< /强>:我们不想在标签中间划分,我们想在每个文件中复制XML头,Nokogiri的方法必须有一些东西。 使用这个简单片段: def split_by_size(text, size = 10 * 1024 * 1024) text.scan /.{1, #{size}}/ end split_by_size

我只是想知道如何分割Nokogiri的大型XML输出

例如,我用数据填充了
Nokogiri::XML
,现在我想将所有这些数据存储在单独的文件中,每个文件的大小不超过10MB


<强>从注释< /强>:我们不想在标签中间划分,我们想在每个文件中复制XML头,Nokogiri的方法必须有一些东西。

使用这个简单片段:

def split_by_size(text, size = 10 * 1024 * 1024)
  text.scan /.{1, #{size}}/
end

split_by_size("12345" * 2, 3)  # => ["123", "451", "234", "5"]

您可以使用此区块数组将其保存到单独的文件中。

使用此简单片段如何:

def split_by_size(text, size = 10 * 1024 * 1024)
  text.scan /.{1, #{size}}/
end

split_by_size("12345" * 2, 3)  # => ["123", "451", "234", "5"]

您可以使用此块数组将它们保存到单独的文件中。

假设您有一些xml:

xml = '<foo><child num="1"/><child num="2"/><child num="3"/></foo>'
doc = Nokogiri::XML(xml)

假设您有一些xml:

xml = '<foo><child num="1"/><child num="2"/><child num="3"/></foo>'
doc = Nokogiri::XML(xml)

好的,但不适合XML,我们不想在标签的中间分割,我们想在每个文件中复制XML头,在NokGoRiRI的方法中一定会有一些东西会严重地破坏XML文件。好的,但是不适合XML,我们不想在标签的中间分割,我们想在每个文件中复制XML头。Nokogiritis的方法中肯定有一些东西会严重破坏XML文件。这听起来是个好问题,但您需要在需求中更加明确,最好是使用示例输入和输出。如果您有
18MB的文本

,结果应该是什么?对于
6MB6MB6MB
如何?对于
4MB4MB4MB
,这不是Nokogiri应该知道的事情;Nokogiri生成您让它创建的XML。作为开发人员,您应该知道您正在生成多少数据,然后在生成XML之前采取步骤将这些数据分成可管理的块。无论您是使用Nokogiri创建XML,还是使用相应的生成器生成YAML、JSON或电子邮件,这都是正确的。还有一个更特别的病态情况:在您拥有多兆字节的属性之前,“”的输出应该是什么?我需要所有这些stuf来制作sitemap。因此,只在标记上断开数据,另一个问题是将xml头添加到每个sitemap*文件这听起来是个好问题,但您需要在需求中更加明确,最好是使用示例输入和输出。如果您有
18MB的文本

,结果应该是什么?对于
6MB6MB6MB
如何?对于
4MB4MB4MB
,这不是Nokogiri应该知道的事情;Nokogiri生成您让它创建的XML。作为开发人员,您应该知道您正在生成多少数据,然后在生成XML之前采取步骤将这些数据分成可管理的块。无论您是使用Nokogiri创建XML,还是使用相应的生成器生成YAML、JSON或电子邮件,这都是正确的。还有一个更特别的病态情况:在您拥有多兆字节的属性之前,“”的输出应该是什么?我需要所有这些stuf来制作sitemap。所以只在标记上断开数据,另一个问题是向每个sitemap*文件添加xml头太棒了!我能做得简单些吗?例如,nokogiri对象(站点地图)包含大量的*我需要在这个对象上做一些类似的事情,每次运行我们都会计算字节数很棒!我能做得简单些吗?例如,nokogiri对象(sitemap)包含大量的*我需要在这个对象上执行类似的操作,每次运行时我们都会计算字节数