我要求大型XML文件需要根据记录计数器拆分成多个文件,我使用XSLT转换将常量设置为100或1000.
对于整个文件,某些节点值只能使用一次,这些值应该是每个文件中的副本。像标题信息或purchaseOrder编号
我必须使用xslt 1.0版本,我的中间件系统中没有2.0支持解析器。 示例文件如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<ns0:HeaderOffile xmlns:ns0="http://cdpa.com/xix/ALS">
<EPBody>
<EList>
<AgEvent>
<parentId>77777</parentId>
<childId>
<epic>400</epic>
<epic>401</epic>
</childId>
<extensions>
<SExtension>
<epic>400</epic>
<NameValue>
<PName>SERVICE</PName>
<PValue>03</PValue>
</NameValue>
</SExtension>
<OneTimeForFile>
<NameValue>
<PName>ZFIELD1</PName>
<PValue>ROYAL</PValue>
</NameValue>
<NameValue>
<ParameterName>ZFIELD2</ParameterName>
<PValue>GOLD</PValue>
</NameValue>
</OneTimeForFile>
</extensions>
</AgEvent>
<AgEvent>
<parentId>88888</parentId>
<childId>
<epic>300</epic>
<epic>301</epic>
</childId>
<extensions>
<SExtension>
<epic>300</epic>
<NameValue>
<PName>SERVICE</PName>
<PValue>03</PValue>
</NameValue>
</SExtension>
</extensions>
</AgEvent>
<AgEvent>
<parentId>99999</parentId>
<childId>
<epic>200</epic>
<epic>201</epic>
</childId>
<extensions>
<SExtension>
<epic>200</epic>
<NameValue>
<PName>SERVICE</PName>
<PValue>03</PValue>
</NameValue>
</SExtension>
</extensions>
</AgEvent>
</EList>
</EPBody>
</ns0:HeaderOffile>
&#13;
在上面的文件中,我需要将文件拆分为我设置的计数的AGEvent节点,例如每100个AGEvent节点。如果我在一个文件中有560个AGEvent节点,那么将有6个文件,5个文件中每个100个,最后6个文件将有60个AGEvent节点。
OneTimeForFile节点在输入文件中只能使用一次,因此在第一个AGEvent节点中每个文件应该复制一次。
请帮我写一个完整的XSLT脚本,让我知道任何问题。 我最终搜索网络以找到解决我问题的方法。
我尝试了post here!但没有实现。 您宝贵的时间非常感谢。 提前致谢。
答案 0 :(得分:0)
使用XSLT 1.0将文件拆分为多个文件的方法只有两种: