如何使用Unix在每个文件中使用单个父节点将XML文件拆分为多个XML文件


0

需要您的帮助将具有多个父节点的XML文件拆分为XML文件,每个文件中包含单个父节点。

以下是包含2条记录的示例文件:

<?xml version='1.0' encoding='UTF-8'?>
<Record xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <AddressBlock>
                <AddressOne>.....</AddressOne>
                <AddressTwo />
                <CityCounty>.....</CityCounty>
                <County>.....</County>
                <Country>.....</Country>
                <PostCode>.....</PostCode>
            </AddressBlock>
            <ContactName>
                <Prefix />
                <FirstName>.....</FirstName>
                <MiddleName />
                <LastCompanyName>.....</LastCompanyName>
                <Suffix />
            </ContactName>
            <Injury>
            <SoftTissue>
                false
            </SoftTissue>
            <BoneInjury>
                false
            </BoneInjury>
            <Whiplash>
                false
            </Whiplash>
            <Respiratory xsi:nil="true" />
            <Deafness xsi:nil="true" />
            <VibrationInjury xsi:nil="true" />
            <Dermatitis xsi:nil="true" />
            <Other>
                false
            </Other>
            <InjuryDetails>.....
            </InjuryDetails>
        </Injury>
        <Repairs>
        <VehicleDamaged xsi:nil="true" />
        <VehicleDamagedDetails xsi:nil="true" />
    </Repairs>
</Record>
<Record xmlns="http://tempuri.org/XMLSchema.xsd">
        <AddressBlock>
                <AddressOne>.....</AddressOne>
                <AddressTwo />
                <CityCounty>.....</CityCounty>
                <County>.....</County>
                <Country>.....</Country>
                <PostCode>.....</PostCode>
            </AddressBlock>
            <ContactName>
                <Prefix />
                <FirstName>.....</FirstName>
                <MiddleName />
                <LastCompanyName>.....</LastCompanyName>
                <Suffix />
            </ContactName>
            <Injury>
            <SoftTissue>
                false
            </SoftTissue>
            <BoneInjury>
                false
            </BoneInjury>
            <Whiplash>
                false
            </Whiplash>
            <Respiratory xsi:nil="true" />
            <Deafness xsi:nil="true" />
            <VibrationInjury xsi:nil="true" />
            <Dermatitis xsi:nil="true" />
            <Other>
                false
            </Other>
            <InjuryDetails>.....
            </InjuryDetails>
        </Injury>
        <Repairs>
        <VehicleDamaged xsi:nil="true" />
        <VehicleDamagedDetails xsi:nil="true" />
    </Repairs>
</Record>

需要你的帮助将它分成2个文件,每个文件中有1个记录(基于'记录'父节点。同样,源文件(合并)中的记录数可能会有所不同


我尝试了以下命令,它运行正常。csplit -s -k -f my_XML_split.xml my_XML.xml“/ ^ <Record * /”{1000}我能够根据父节点'Record'将文件拆分成多个文件。但是输出文件名是格式的my_XML_split.xml00,my_XML_split.xml01,...我希望输出文件格式为my_XML_split00.xml可以有人帮我这个
Janaki Chidambaram

由于存在多个根音符,因此您的“XML”无效。至于命名,只需重命名它们?
Seth

您好Seth我必须拆分具有多个根节点的统一XML文件。这里的每个根节点都有一个事务详细信息,我必须将它拆分成多个文件,每个文件中有一个事务详细信息(根节点)。
Janaki Chidambaram

离开关.xml在`-f”选项,所以你会喜欢创建文件
内文·威廉姆斯

哎呀,截断; 我的编辑没有通过,因为我走开了。之后尝试使用for循环添加.xml扩展名。
Nevin Williams
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.