0

1 つのノードに対して XML ペイロードを String の形式で取得するという要件があり、この XML を展開して、XML ノード値を宛先 XSD 列に渡す必要があります。

たとえば、入力 XSD :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Transaction xmlns="http://xmlns.oracle.com/2012/SCEM">
    <TRXKEY>0x0000013</TRXKEY>
    <EVENTNAME>SalesOrder</EVENTNAME>
    <ACCEPTEDQUANTITY>0</ACCEPTEDQUANTITY>
    <ORDEREDQUANTITY>0</ORDEREDQUANTITY>
    <SOLORGID>0</SOLORGID>
    <LHORDERHOLDIDRELEASED>0</LHORDERHOLDIDRELEASED>
    <ORDEREDQUANTITYUOM>0</ORDEREDQUANTITYUOM>
    <UNITSELLINGPRICE>0</UNITSELLINGPRICE>
    <ORDERTYPE>&lt;Val lang='AR'&gt;OrderTypeARARARAR&lt;/Val&gt;
                    &lt;Val lang='KO'&gt;OrderTypeKOKOKOKO&lt;/Val&gt;
                    &lt;Val lang='US'&gt;OrderTypeUSUSUUS&lt;/Val&gt;
                   </ORDERTYPE>
</Transaction>

出力 XML

<Transaction1 xmlns="http://xmlns.oracle.com/2012/SCEM">
    <TRXKEY>0x0000013</TRXKEY>
    <EVENTNAME>SalesOrder</EVENTNAME>
    <ACCEPTEDQUANTITY>0</ACCEPTEDQUANTITY>
    <ORDEREDQUANTITY>0</ORDEREDQUANTITY>
    <SOLORGID>0</SOLORGID>
    <LHORDERHOLDIDRELEASED>0</LHORDERHOLDIDRELEASED>
    <ORDEREDQUANTITYUOM>0</ORDEREDQUANTITYUOM>
    <UNITSELLINGPRICE>0</UNITSELLINGPRICE>
    <ORDERTYPE_AR>OrderTypeARARARAR</ORDERTYPE_AR>
    <ORDERTYPE_US>OrderTypeUSUSUUS</ORDERTYPE_US>
    <ORDERTYPE_KO>OrderTypeKOKOKOKO</ORDERTYPE_KO>
</Transaction>

ORDERTYPE ノードの XML 文字列をループする必要があります。「Val lang=」値に応じて、このノード値を出力 XSD ORDERTYPE_$lang 値列に渡す必要があります。

これら 2 つの異なる値に対してこの XML 文字列をループし、対応する出力 XML 列に渡すにはどうすればよいですか?

分割を使用することを考えていましたが、あまり役に立ちません。

4

1 に答える 1