2

Stack Overflow にも同様のトピックがいくつかありますが、実際にその方法を説明しているものは見つかりません。

としてデータを返す API がありますXMLJSONに保存しているので、これをに変換したいMongoDB

<cj-api>
    <products total-matched="231746" records-returned="999" page-number="1">
        <product>
            <ad-id>10648829</ad-id>
            <advertiser-id>2618386</advertiser-id>
            <advertiser-name>Acne Jeans UK</advertiser-name>
            <advertiser-category>New Arrivals</advertiser-category>
            <buy-url>http://www.tkqlhce.com/click-7227532-10648829?url=http%3A%2F%2Fshop.acnestudios.com%2Fpop-cord-white.html&cjsku=30X133-151</buy-url>
            <catalog-id>cjo:939</catalog-id>
            <currency>EUR</currency>
            <description>Pop Cord White.</description>
            <image-url>http://c893323.r23.cf3.rackcdn.com/catalog/product/cache/25/thumbnail/300x300/9df78eab33525d08d6e5fb8d27136e95/3/0/30X133-151_A_57419.jpg</image-url>
            <in-stock>true</in-stock>
            <isbn/>
            <manufacturer-name>Acne Studios</manufacturer-name>
            <manufacturer-sku/>
            <name>Pop Cord White</name>
            <price>200.0</price>
            <retail-price/>
            <sale-price/>
            <sku>30X133-151</sku>
            <upc/>
        </product>
        <product>
            <ad-id>10648829</ad-id>
            <advertiser-id>2618386</advertiser-id>
            <advertiser-name>Acne Jeans UK</advertiser-name>
            <advertiser-category>Jeans</advertiser-category>
            <buy-url>http://www.dpbolvw.net/click-7227532-10648829?url=http%3A%2F%2Fshop.acnestudios.com%2Fflex-black.html&cjsku=30H126-129</buy-url>
            <catalog-id>cjo:939</catalog-id>
            <currency>EUR</currency>
            <description>Acne Flex Black jeans are narrow, tight fitting jeans with a comfortable mid rise waist.<ul>
                <li>Worn in black blue wash</li>
                <li>Classic five pocket styling</li>
                <li>Zippered fly front closure</li>
                <li>Secures at the waist with bachelor button</li>
                <li>Acne embossed rivets</li>
                </ul>.</description>
                <image-url>http://c893323.r23.cf3.rackcdn.com/catalog/product/cache/25/thumbnail/300x300/9df78eab33525d08d6e5fb8d27136e95/3/0/30H126-129_A_18.jpg</image-url>
                <in-stock>true</in-stock>
                <isbn/>
                <manufacturer-name>Acne Studios</manufacturer-name>
                <manufacturer-sku/>
                <name>Flex Black</name>
                <price>170.0</price>
                <retail-price/>
                <sale-price/>
                <sku>30H126-129</sku>
                <upc/>
            </product>     
    </products>
</cj-api>

(製品が 2 つしかないと仮定しましょう - 実際には 231,746 あります!)

Node では、requestこの XML を収集して、 という変数に格納するために使用していますbody。私はlibxmljs次のように使用しています:

    var xmlDoc = libxmljs.parseXmlString(body);
    var product = xmlDoc.get('//product'); <!-- very unsure whether I'm using this correctly

問題は、このデータの処理方法がまったくわからないことです。libxmljs のドキュメントは、この点でまったく役に立ちません。jQueryと同等のことをしたい:

$('product').each(function(){
    var obj = {
        advertiser-name: $(this).find('advertiser-name'),
        buy-url: $(this).find('buy-url'),
        ... etc etc etc
})

libxmljsデータをより簡単に操作できるように、/別のライブラリを使用してこれを行うにはどうすればよいですか?

4

1 に答える 1