4

簡単な背景: XML フィードをソースとして使用するニュースレター コンテンツ ジェネレーターを作成しようとしています。これを機能させるには、ニュースレターのレイアウトに合わせて各 XML ノード要素を準備する必要があります。

このメソッドを使用して、2 つの隣接する xml 要素を 1 つのグループ ノードにマージします。

element_getter: function(xml) {

var deals = $(xml).find('campaign:eq(0) deal');

    deals = $.map(deals, function(val, index){

        if (index % 2 == 1) return;


        var group = $(document.createElement('group'));

        $(group).append(deals[index]);

            if (deals[index+1]) 
                $(group).append(deals[index+1]);        

            return group;
        });

        return deals;
    }

問題は IE で発生します。ドキュメントに新しいノードを作成しようとしたり、コンテンツを追加しようとすると、SCRIPT5022: WrongDocumentError (これは FF や Chrome では発生しません) が発生します。この要素をさまざまな方法 ($.parseXML など) で追加しようとしました。 、しかし、それはうまくいきません。

何か案は?

XML ソースの例を次に示します。

<ebi-cmp-list version="1">
<campaign id="2">
    <title>Campaign</title>
    <startTime ts="201309090600">2013-09-09 06:00</startTime>
    <endTime ts="201309102359">2013-09-10 23:59</endTime>
    <type id="2">spec_offer</type>
    <deals>
        <deal id="15814">
            <event id="15814">Test Event</event>
            <venue id="429">Arena</venue>
            <city id="20">Berlin</city>
            <category id="73">Shows</category>
            <time ts="201310122000">2013-10-12 20:00</time>
            <price>
                <oldPrice currency="EUR">113.00</oldPrice>
                <newPrice currency="EUR">113.00</newPrice>
            </price>
            <ticketsLeft>26</ticketsLeft>
            <link rel="img">http://www.example.com</link>
            <link rel="event">http://www.example.com</link>
        </deal>
        <deal id="15814">
            <event id="15814">Test Event</event>
            <venue id="429">Arena</venue>
            <city id="20">Berlin</city>
            <category id="73">Shows</category>
            <time ts="201310122000">2013-10-12 20:00</time>
            <price>
                <oldPrice currency="EUR">113.00</oldPrice>
                <newPrice currency="EUR">113.00</newPrice>
            </price>
            <ticketsLeft>26</ticketsLeft>
            <link rel="img">http://www.example.com</link>
            <link rel="event">http://www.example.com</link>
        </deal>
    </deals>
</campaign>

4

1 に答える 1

4

通常、あるドキュメント (XML) に属するノードを別のドキュメント (HTML ドキュメント) に単純に追加することはできないため、他のブラウザーが文句を言わないことに驚いています。ノードをノードに追加することしかできないはずです。同じ ownerDocument を持っています。

最初にimportNodeを使用して、XML ノードを HTML ドキュメントの「スコープ」にインポートしてみてください。

于 2013-09-27T08:10:50.353 に答える