我有想要拆分的大型 XML 文件(“ONIX”标准)。基本结构是:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ONIXmessage SYSTEM "http://www.editeur.org/onix/2.1/short/onix-international.dtd">
<!-- DOCTYPE is not always present and might look differently -->
<ONIXmessage> <!-- sometimes with an attribute -->
<header>
...
</header> <!-- up to this line every out-file should be identical to source -->
<product> ... </product>
<product> ... </product>
...
<product> ... </product>
<ONIXmessage>
我想要做的是将此文件拆分为n 个大小大致相同的较小文件。为此,我会计算<product>
节点的数量,将它们除以n并将它们克隆到n 个新的 xml 文件中。我找了很多,这个任务似乎比我想象的要难。
- 到目前为止我无法解决的是克隆一个具有相同 xml 声明、文档类型、根元素和
<header>
节点但没有<product>s
. 我可以使用正则表达式来做到这一点,但我宁愿使用 xml 工具。 - 将多个
<product>
节点传输到一个新的 XML 文档的最聪明的方法是什么?对象表示法,例如$xml.ONIXmessage.product | % { copy... }
,XPath()
查询(您可以使用 XPath() 选择n 个节点吗?)CloneNode()
和XMLReader
/XMLWriter
? - 节点的内容在格式和编码方面应该是相同的。如何确保这一点?
我将非常感谢您在正确方向上的一些推动!