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統合されたXMLファイルを複数のルートノードで分割する必要があります。ここの各ルートノードはトランザクションの詳細を保持し、各ファイルに1つのトランザクションの詳細(ルートノード)を持つ複数のファイルに分割する必要があります。
Janakiチダンバラム

オフのままに.xmlあなたのようなファイルを作成しますので、 `-f」オプションで
ネヴィンウィリアムズ

おっと、切り捨てられました。私が離れたので、私の編集は通過しませんでした。forその後、ループを使用して.xml拡張子を追加してみてください。
ネビンウィリアムズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.