XMLの複数のMSG-IDを同時に変換するには? [閉鎖]

XMLの複数のMSG-IDを同時に変換するには? [閉鎖]

MSG-ID(データベースにあるMSG-ID)をXMLファイルに変換するスクリプトがあります。

以下は、MSIDをXMLに変換する例です。

getDXML xxxxxMSGIDxxxxxx > filename.xml 

今私は40以上のMSG-IDを持っており、可能であればそれらをすべて一度に別の名前に変換したいと思います。

これはそれの一部です

<?xml version="1.0" encoding="UTF-8"?>
<message schemaLocation="http://postfinance.ch/deva/message BANCS_DEVA_Message.xsd">
    <MessageHeader>
        <MandantID>001001</MandantID>
        <MessageID>**201711221731-A_DEVA_ADHCORDNTF_AA-10500879**</MessageID>
        <Sender>BOMC</Sender>
        <SenderPlattform>T</SenderPlattform>
        <MessageType>00761</MessageType>
        <Receiver>DEVA</Receiver>
        <CommPattern>FF</CommPattern>
        <Prioritaet>normal</Prioritaet>
    </MessageHeader>
    <sendung>
        <ProcessingHeader>

答え1

まずテンプレートを作成します。

cat >template.notxml <<'X'
<?xml version="1.0" encoding="UTF-8"?>
<message schemaLocation="http://postfinance.ch/deva/message BANCS_DEVA_Message.xsd">
    <MessageHeader>
        <MandantID>001001</MandantID>
        <MessageID>#MESSAGEID#</MessageID>
        <Sender>BOMC</Sender>
        <SenderPlattform>T</SenderPlattform>
        <MessageType>00761</MessageType>
        <Receiver>DEVA</Receiver>
        <CommPattern>FF</CommPattern>
        <Prioritaet>normal</Prioritaet>
    </MessageHeader>
    <sendung>
        <ProcessingHeader>
X

これでファイルを作成します。あなたのリストに一連のメッセージIDがあるとします。実際の詳細がない場合は、メッセージIDに文字、数字、ハイフン、アンダースコア(、、、、、、)A-Zのみが含まれているとします。私たちはこれをリストと呼びます。a-z0-9-_ids.list

while IFS= read -r messageid
do
    sed "s/#MESSAGEID#/$messageid/g" template.notxml > "$messageid.notxml"
done < ids.list

関連情報