階層とJSオブジェクトからの属性をいくつか持つ比較的単純なXMLドキュメントを作成する必要があります。私はこれらのモジュールのいずれかを選択する前に今立っています:
どのモジュールを選ぶべきですか?
この質問は良い質問ではないと思われるかもしれませんが、別の方法で質問する方法はわかりません。
免責事項:各リポジトリに問題として同じ質問を投稿しました
これは私が作成したいXMLです:
<?xml version="1.0" encoding="UTF-8"?>
<orders>
<order>
<order_orderid>123123</order_orderid>
<order_customerid>345345</order_customerid>
<order_senhcode>7604</order_senhcode>
<order_mediacode>qwert</order_mediacode>
<order_totalshippingcost>0</order_totalshippingcost>
<order_paymentmethod>GB</order_paymentmethod>
<order_paymentnumber />
<order_htmltext />
<order_comment />
<shippingmethodid>02</shippingmethodid>
<order_creditcardnumber />
<order_creditcardnameholder />
<order_creditcardexpiredate />
<order_creditcardsafetycode />
<order_gifttext />
<inv_customer>
<inv_customer_addresstypeid />
<inv_customer_gendermale>0</inv_customer_gendermale>
<inv_customer_firstname>qwerty</inv_customer_firstname>
<inv_customer_initials>Q.W.E</inv_customer_initials>
<inv_customer_prename />
<inv_customer_lastname>Qwerty</inv_customer_lastname>
<inv_customer_company>Some company</inv_customer_company>
<inv_customer_street>Postbus</inv_customer_street>
<inv_customer_housenumber>13</inv_customer_housenumber>
<inv_customer_housenumberadditional />
<inv_customer_postalcode>1234 AB</inv_customer_postalcode>
<inv_customer_city>THERE</inv_customer_city>
<inv_customer_isocodecountry>NL</inv_customer_isocodecountry>
<inv_customer_email>[email protected]</inv_customer_email>
<inv_customer_telephone>0168-123456</inv_customer_telephone>
<inv_customer_mobilenr>06-12345678</inv_customer_mobilenr>
</inv_customer>
<orderlines>
<orderline>
<orderline_orderrecordid>1234</orderline_orderrecordid>
<orderline_orderid>8765432</orderline_orderid>
<orderline_articlenr>164-05-366</orderline_articlenr>
<orderline_quantity>2</orderline_quantity>
<orderline_productdescription>Some gift voucher</orderline_productdescription>
<orderline_price>1233</orderline_price>
</orderline>
<orderline>
<orderline_orderrecordid>5678</orderline_orderrecordid>
<orderline_orderid>8765432</orderline_orderid>
<orderline_articlenr>164-05-367</orderline_articlenr>
<orderline_quantity>3</orderline_quantity>
<orderline_productdescription>Some other gift voucher</orderline_productdescription>
<orderline_price>1244</orderline_price>
</orderline>
</orderlines>
</order>
</orders>
自分で調べた
| author | davidcalhoun | soldair | QuickenLoans | michaelkourlas |
|---------------|--------------|-----------|--------------|----------------|
| module | jstoxml | node- | node- | node- |
| | | jsontoxml | easyxml | js2xmlparser |
| Commits | 31 | 64 | 39 | 61 |
| Recent commit | a year ago | 2 years ag| 6 months ago | 16 days ago |
| Contributors | 2 | 7 | 7 | 6 |
| Issues | 16 | 19 | 17 | 15 |
| Open Issues | 7 | 1 | 6 | 1 |
| npm install | jstoxml | not found | easyxml | js2xmlparser |
| Dependencies | None | None | elementtree, | None |
| | | | inflect | |
| Throws errors | None | None | 3 | 12 |
次に、比較する必要があるオブジェクトのタイプがあります
{
"_name": 'foo',
"_content": 'bar',
"_attrs": {
"a": 'b',
"c": 'd'
}
}
soldair/node-jsontoxml :複雑に見えます
items: [{
"name": 'one',
"_id": 1
}, {
"name": 'two',
"_id": 2
}
]
michaelkourlas/node-js2xmlparser
foo: {
"#": 'bar',
"@": {
a: 'b',
c: 'd'
}
}
私は、michaelkourlasのnode-js2xmlparserに試してみると思います。
更新:もう2つ言及する価値があるようです:
後者は、最も成熟しており、npmにダウンロードされています。これを使用すると、XMLを一度に、または繰り返し作成できます。