2017-11-24 1 views
-1

저는 node.js에 완전히 noobie이고 저는 대학 연구원입니다. XML 및 JSON 형식의 파일이 많습니다. 폴더 및 파일이 많습니다. JSON/CSV로 읽은 다음 하나의 표준을 만들고 마침내 MySQL 데이터베이스에로드하는 팁이 필요합니까? 그것 또는 완전히 해결책을위한 npm 꾸러미를 아십니까? 당신은뿐만 아니라 데이터베이스에 삽입하기위한 표준 형식으로 변환 할 필요 같은node.js에서 json으로 파일과 xml을 많이 읽습니다.

답변

0

.. xmljs, xml2json 등과 같은 JSON XML을 변환하는 많은 패키지하지만 보인다.

나는이 문제를 자신을 가지고 있고 나는이 목적을 위해 camaro을 썼다 : 변환 및 JSON XML을 변환

내가 할 일은 내가 XPath를 사용하여도 변환 할 내 XML을 원하는 출력 템플릿을 작성하는 것입니다

아래 구문처럼

물론 필요한 모든 속성을 병합 할 수 있습니다. 아래는 카마로가 할 수있는 것의 예입니다. @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에 있습니다. 카마로에서 수행 할 수 있습니까?

그리고 내가 가지고는 키 XPath를 사용하는 것은 불가능, 태그 nameHotel를 제거하고 지금 당신에게

+0

대단히 감사합니다 {name: 'Hotel Hilton'}로 저장 할 수 <name type="sub-name">Hotel <nameHotel>Hilton</nameHotel></name>처럼 순수하지 데이터를 않습니다 아직하지만 난거야 그것을 고려하십시오. –