0

ソース XML は次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<MT_A2B>
    <Header>
        <ReceiverID>XYZ Pvt Ltd.</ReceiverID>
        <Date>2013-05-16</Date>
        <FileId>1</FileId>
        <Version>1.0</Version>
    </Header>
    <Invoice>
        <ItemsInfo>
            <Item id="A1">
                <AccountID>1234567890</AccountID>
                <AccountName>657-6746-AM2</AccountName>
                <AccountType>CONTRACT</AccountType>
                <Type>/item/cxn/vpn/cycle</Type>
                <Name>VPN cycle fees</Name>
                <SessionCount>3</SessionCount>
                <NetAmount>3000.00</NetAmount>
                <Tot>
                    <UsageClass>AOC</UsageClass>
                    <SessionCount>3</SessionCount>
                    <Quantity>4</Quantity>
                    <FreeQuantity>1</FreeQuantity>
                    <NetAmount>3000.00</NetAmount>
                    <ZoneTot>
                        <ZoneDescription>To Category 2</ZoneDescription>
                        <GLID>300|A1000001|F1000001|50001</GLID>
                        <SetUpFee>0.00000</SetUpFee>
                        <Unit>1</Unit>
                        <UnitPrice>1000.0000</UnitPrice>
                        <SessionCount>2</SessionCount>
                        <Quantity>3</Quantity>
                        <FreeQuantity>1</FreeQuantity>
                        <NetAmount>2000.00</NetAmount>
                    </ZoneTot>
                    <ZoneTot>
                        <ZoneDescription>To Category 2</ZoneDescription>
                        <GLID>300|A1000001|F1000001|50001</GLID>
                        <SetUpFee>0.00000</SetUpFee>
                        <Unit>1</Unit>
                        <UnitPrice>1000.0000</UnitPrice>
                        <SessionCount>1</SessionCount>
                        <Quantity>1</Quantity>
                        <FreeQuantity>0</FreeQuantity>
                        <NetAmount>1000.00</NetAmount>
                    </ZoneTot>
                </Tot>
            </Item>
        </ItemsInfo>
    </Invoice>
</MT_A2B>

Tot ノードに複数の ZoneTot があるかどうかを確認する必要があります。はいの場合、2 番目の ZoneTot ノードに対応するために、Tot ノードをもう 1 つ作成する必要があります。基本的に、各 Tot ノードには ZoneTot ノードが 1 つだけある必要があります。Tot ノードに複数の ZoneTot ノードがある場合は、適切にフォーマットする必要があります。2 番目の Tot ノードにあるフィールドを計算する必要がありますが、ここでは触れません。まず、XML をフォーマットするという基本的な要件を満たす必要があります。

出力 XML を以下のようにしたいと考えています。

<?xml version="1.0" encoding="UTF-8"?>
<MT_A2B>
    <Header>
        <ReceiverID>XYZ Pvt Ltd.</ReceiverID>
        <Date>2013-05-16</Date>
        <FileId>1</FileId>
        <Version>1.0</Version>
    </Header>
    <Invoice>
        <ItemsInfo>
            <Item id="A1">
                <AccountID>1234567890</AccountID>
                <AccountName>657-6746-AM2</AccountName>
                <AccountType>CONTRACT</AccountType>
                <Type>/item/cxn/vpn/cycle</Type>
                <Name>VPN cycle fees</Name>
                <SessionCount>3</SessionCount>
                <NetAmount>3000.00</NetAmount>
                <Tot>
                    <UsageClass>AOC</UsageClass>
                    <SessionCount>3</SessionCount>
                    <Quantity>4</Quantity>
                    <FreeQuantity>1</FreeQuantity>
                    <NetAmount>3000.00</NetAmount>
                    <ZoneTot>
                        <ZoneDescription>To Category 2</ZoneDescription>
                        <GLID>300|A1000001|F1000001|50001</GLID>
                        <SetUpFee>0.00000</SetUpFee>
                        <Unit>1</Unit>
                        <UnitPrice>1000.0000</UnitPrice>
                        <SessionCount>2</SessionCount>
                        <Quantity>3</Quantity>
                        <FreeQuantity>1</FreeQuantity>
                        <NetAmount>2000.00</NetAmount>
                    </ZoneTot>
                </Tot>

                <Tot>
                    <UsageClass>AOC</UsageClass>
                    <SessionCount>3</SessionCount>
                    <Quantity>4</Quantity>
                    <FreeQuantity>1</FreeQuantity>
                    <NetAmount>3000.00</NetAmount>
                    <ZoneTot>
                        <ZoneDescription>To Category 2</ZoneDescription>
                        <GLID>300|A1000001|F1000001|50001</GLID>
                        <SetUpFee>0.00000</SetUpFee>
                        <Unit>1</Unit>
                        <UnitPrice>1000.0000</UnitPrice>
                        <SessionCount>1</SessionCount>
                        <Quantity>1</Quantity>
                        <FreeQuantity>0</FreeQuantity>
                        <NetAmount>1000.00</NetAmount>
                    </ZoneTot>
                </Tot>
            </Item>
        </ItemsInfo>
    </Invoice>
</MT_A2B>
4

0 に答える 0