node.jsには完全にnoobieです。私は大学の研究者です。 私はXMLとJSON形式のファイルがたくさんあるので、たくさんのフォルダとファイルがあります。私はそれを読んで一つの標準(JSON/CSV)を作成し、最終的にMySQLデータベースにロードします。あなたはnpmパッケージを知っていますか完全に解決していますか?node.jsのjsonに多くのファイルとxmlを読み込みます
-1
A
答えて
0
ありxmljs
、xml2json
、などのようなJSONにXMLを変換するための多くのパッケージは
..ですしかし、あなたは同様にデータベースに挿入するための標準フォーマットに変換する必要があるように見えます。
私は自分自身と私は、この目的のためにcamaroをこの問題を書いている:JSON
にXMLを変換し、変換し、私がしなければならないのは、私は私のXMLは、XPathを使用して、あまりにも変換されることを希望出力テンプレートを書くことです以下のような構文
もちろん、必要な属性をすべて平坦化することもできます。以下はカマロができることの例です。 @tuananh
const transform = require('camaro')
const fs = require('fs')
const xml = fs.readFileSync('examples/ean.xml', 'utf-8')
const template = {
cache_key: '/HotelListResponse/cacheKey',
hotels: ['//HotelSummary', {
hotel_id: 'hotelId',
name: 'name',
rooms: ['RoomRateDetailsList/RoomRateDetails', {
rates: ['RateInfos/RateInfo', {
currency: 'ChargeableRateInfo/@currencyCode',
non_refundable: 'boolean(nonRefundable = "true")',
price: 'number(ChargeableRateInfo/@total)'
}],
room_name: 'roomDescription',
room_type_id: 'roomTypeCode'
}]
}],
session_id: '/HotelListResponse/customerSessionId'
}
const result = transform(xml, template)
0
おかげで、それは、キーまたは値として、タグのATTRを使用することは可能ですか?私のデータの価値のいくつかは、<name type="sub-name">Hotel name</name>
または<hotelName id='12345'>Hotel name </name>
のようにattrに持っています。それはカマロでできるのですか?
そして、私はしている<name type="sub-name">Hotel <nameHotel>Hilton</nameHotel></name>
のような純粋なデータをしませんタグnameHotel
を削除し、{name: 'Hotel Hilton'}
として保存することが可能となる今
をありがとう、キーでXPathを使用することはできません、まだ私はよそれを将来考慮する。 –