-1

XML データを含む文字列変数があります。その XML の別の要素内に子属性を追加したかっただけです。私が考えている解決策は、この文字列を XML に変換し、それをXML.appendChild()メソッドで実行することですが、まだ試していないのでわかりません。

var pli = '';
pli = '<product-lineitem>
            <net-price>70.00</net-price>
            <tax>4.66</tax>
            <gross-price>74.66</gross-price>
            <base-price>70.00</base-price>
            <lineitem-text>THE GOLD GODS Micro Jesus Piece Gunmetal Necklace</lineitem-text>
            <tax-basis>52.50</tax-basis>
            <position>1</position>
            <product-id>26809214001</product-id>
            <product-name>THE GOLD GODS Micro Jesus Piece Gunmetal Necklace</product-name>
            <quantity unit="">1.0</quantity>
            <tax-rate>0.08875</tax-rate>
            <shipment-id>00017006</shipment-id>
            <gift>false</gift>
            <custom-attributes>
                <custom-attribute attribute-id="defaultItemShipment">add-to-cart</custom-attribute>
            </custom-attributes>
            <price-adjustments>
                <price-adjustment>
                    <net-price>-17.50</net-price>
                    <tax>0.00</tax>
                    <gross-price>-17.50</gross-price>
                    <base-price>-17.50</base-price>
                    <lineitem-text>25% off Dresses</lineitem-text>
                    <tax-basis>0.00</tax-basis>
                    <promotion-id>25-off-dresses-test</promotion-id>
                    <campaign-id>25-off-dresses-test</campaign-id>
                </price-adjustment>
            </price-adjustments>
        </product-lineitem>'

上記の文字列を見るとわかるように、JAVASCRIPT を使用して要素<coupon-id> somevalue </coupon-id>内に属性を挿入したかっただけです。<price-adjustment>出力は次のようになります。

<product-lineitem>
        <net-price>70.00</net-price>
        <tax>4.66</tax>
        <gross-price>74.66</gross-price>
        <base-price>70.00</base-price>
        <lineitem-text>THE GOLD GODS Micro Jesus Piece Gunmetal Necklace</lineitem-text>
        <tax-basis>52.50</tax-basis>
        <position>1</position>
        <product-id>26809214001</product-id>
        <product-name>THE GOLD GODS Micro Jesus Piece Gunmetal Necklace</product-name>
        <quantity unit="">1.0</quantity>
        <tax-rate>0.08875</tax-rate>
        <shipment-id>00017006</shipment-id>
        <gift>false</gift>
        <custom-attributes>
            <custom-attribute attribute-id="defaultItemShipment">add-to-cart</custom-attribute>
        </custom-attributes>
        <price-adjustments>
            <price-adjustment>
                <net-price>-17.50</net-price>
                <tax>0.00</tax>
                <gross-price>-17.50</gross-price>
                <base-price>-17.50</base-price>
                <lineitem-text>25% off Dresses</lineitem-text>
                <tax-basis>0.00</tax-basis>
                <promotion-id>25-off-dresses-test</promotion-id>
                <campaign-id>25-off-dresses-test</campaign-id>
                <coupon-id> somevalue </coupon-id>
            </price-adjustment>
        </price-adjustments>
    </product-lineitem>

感謝して助けてください。

4

1 に答える 1

0

XML クラスのドキュメントを確認しましたか -> https://documentation.demandware.com/DOC2/topic/com.demandware.dochelp/DWAPI/scriptapi/html/api/class_TopLevel_XML.html?resultof=%22%61%70%70 %65%6e%64%43%68%69%6c%64%22%20%22%61%70%70%65%6e%64%63%68%69%6c%64%22%20

クラスの説明の先頭に何かを追加する方法の例があります。

また、XML を処理するためのベスト プラクティスは、xml ファイルを処理することです。xml を読み取るには、最初に XMLStreamReader を使用する必要があります。そして、必要な情報を追加する XMLStreamWriter を使用して新しいものを作成した後。xml ファイルに何かを追加する機能はありません。

詳細については、dw.io パッケージのドキュメントを確認してください -> https://documentation.demandware.com/DOC2/topic/com.demandware.dochelp/DWAPI/scriptapi/html/api/package_dw_io.html

ありがとう

于 2017-10-13T03:00:03.640 に答える