gpt4 book ai didi

javascript - 使用xml2js的xml解析问题

转载 作者:行者123 更新时间:2023-11-30 22:59:41 31 4
gpt4 key购买 nike

我需要解析大量 XML 数据并将值插入 mySQL 表中。

我的XML数据是这样的形式,

<BMS version="1.0">
<Summaries>
<Summary Booking_strId="CWBL00D7CB8J8U" Booking_lngId="466244159" Trans_lngId="466244159" App_strCode="WEBIN" Event_strType="CT" Trans_dtmBookingStamp="Mon, 30 Jun, 2014 @ 7:00pm" Trans_dtmBookingDate="Mon, 30 Jun, 2014" Trans_dtmBookingTime="7:00pm" Trans_mnyTicketsTotal="7000.0000" Trans_mnyTicketsBookingFee="224.7200" Trans_mnyTicketsDeliveryFee="0.0000" Trans_mnyInventoryTotal="1.0000" Trans_mnyInventoryBookingFeeTotal="0.0000" Trans_mnyInventoryDeliveryFeeTotal="0.0000" Trans_mnyDiscount="0.0000" Trans_mnyTotal="7225.7200" Trans_mnyTicketsTax="0.0000" Trans_mnyTicketNett="7000.0000" Trans_strTicketsTotal="Rs.7000.00" Trans_strTicketsBookingFee="Rs.224.72" Trans_strTicketsDeliveryFee="Rs.0.00" Trans_strInventoryTotal="Rs.1.00" Trans_strInventoryBookingFeeTotal="Rs.0.00" Trans_strInventoryDeliveryFeeTotal="Rs.0.00" Trans_strDiscount="Rs.0.00" Trans_strTotal="Rs.7225.72" Trans_strTicketsTax="Rs.0.00" Trans_strTicketNett="Rs.7000.00" Trans_intTicketsQuantity="2" Booking_strCommitted="Y" Trans_strPaymentReceived="Y" Trans_strPaymentMode="Credit Card/Debit Card" Trans_strPartialCardNo="" Trans_strAlertMail="mantasea@gmail.com" Trans_strAlertMobile="7259179605" Member_lngId="0" Member_strMail="" Member_strName="Customer" Trans_strBarCodeName="CWBL00D7CB8J8U-466244159" Trans_strBarCodeText="CWBL00D7CB8J8U" Trans_strMessage1="" Trans_strMessage2="" Trans_strMessage3="" Trans_strShowBanner="N" Trans_strBannerImage="" Trans_strBannerURL="" Trans_bitSendConfirmationMail="True" Trans_bitSendConfirmationSMS="True" Trans_strTemplate="BookingConfirmation_CT" Trans_bitTPIN="False" Trans_strTPIN="" Trans_strDiscountText="" Trans_strCurrency="Rs." Trans_strPayType="" Trans_strDebtorId="" Trans_strSubDebtorId="" Trans_strKidShirtSize="" Trans_strGuardShirtSize="" Trans_strRaceCat="" Trans_HasETicket="N" Trans_mnyAdditionalCharges="0.0000" Trans_strAdditionalCharges="Rs.0.00" Trans_strData="" Trans_strETicketURL="" Member_strDetails="" Trans_xmlDetails="" Trans_strMergeTPINSMS="N" Venue_strPhoneNo="" Trans_strETicketURLEx="" Trans_strGenerateKioskBarcode="N" Trans_strTPINSMSText="" Trans_strSMSText1="" Trans_strMergeKioskBarcodeWithSMS="N" Trans_strHasInventory="Y" Trans_xmlAddressDetails="" Venue_strApplication="BT" Trans_strQRCodeText="CWBL00D7CB8J8U-ET00022121,10192,05-Jul-2014,19:07" />
</Summaries>
<SessionOrders>
<SessionOrder Venue_strCode="CWBL" Session_lngSessionId="10192" Venue_strName="Chowdiah Memorial Hall" Venue_strLocation="Bangalore" Event_strName="Ahmad Jamal Live In Concert " Event_strShortName="Ahmad Jamal Live In Conce" Trans_dtmShowStamp="Sat, 5 Jul, 2014 @ 7:00pm" Trans_dtmShowDate="Sat, 5 Jul, 2014" Trans_dtmShowTime="7:00pm" Trans_strSeatInfo="Row AA to I:C22,C23" Trans_strSeatData="2 X Row AA to I" Cinema_strEmail="" Event_strSKUCode="" Trans_intQuantity="2" Trans_mnyTicketsTotal="7000.0000" Trans_strTicketsTotal="Rs.7000.00" Trans_strTPIN="" Booking_lngId="466244159" Event_strCode="ET00022121" Ticket_strType="T463" AreaCat_strCode="AC00000425" Venue_strLongitude="77.575509" Venue_strLatitude="13.006609" Trans_dtmUTCShowDate="2014-07-05T19:00:00+05:30" Venue_strBuilding="16th Cross" Venue_strStreet="G.D. Park Extension, 2nd Main Road, Malleswaram" Venue_strCity="Bangalore" Venue_strState="Karnataka" Venue_strCountry="India" Venue_strTelephone="39895050" Venue_strPostalCode="560003" Venue_strNameOnly="Chowdiah Memorial Hall" Screen_strName="" />
</SessionOrders>
<Inventories>
<Inventory TransI_lngId="466244159" TransI_intSequence="1" Trans_intSequence="1" Item_lngId="382" TransI_intQuantity="1" TransI_mnySalesPrice="1.0000" TransI_mnySalesTax1="0.0000" TransI_mnySalesTax2="0.0000" TransI_mnySalesTax3="0.0000" TransI_mnySalesTax4="0.0000" TransI_mnyBookingFee="0.0000" TransI_mnyDeliveryFee="0.0000" TransI_strSalesPrice="Rs.1.00" TransI_strSalesTax1="Rs.0.00" TransI_strSalesTax2="Rs.0.00" TransI_strSalesTax3="Rs.0.00" TransI_strSalesTax4="Rs.0.00" TransI_strBookingFee="Rs.0.00" TransI_strDeliveryFee="Rs.0.00" TransI_strItemIsDeliverable="AV" Booking_strType="" TransI_strData="" TransI_dtmDateTime="30 Jun 2014 7:01 PM" TransI_xmlDetails="" Item_strShortName="Book A Smile Rs 1" Item_strDescription="Book A Smile Rs 1" Item_strTagLine="Book A Smile Rs 1" ItemGroup_lngId="109" Item_strType="DN" TransI_mnyTotal="1.0000" TransI_TransTotal="Rs.1.00" ItemVar_intSequence="1" />
</Inventories>
<SeatInfos>
<SeatInfo Event_strTitle="Ahmad Jamal Live In Concert" Event_strShortCode="AJLC" Trans_dtmShowDate="05-Jul-2014" Trans_dtmShowTime="07:00 pm" Venue_strName="Chowdiah Memorial Hall" Venue_strCode="CWBL" Booking_strCommitted="Y" Trans_strGate="|" Trans_strBay="|" Trans_strFlight="|" Trans_strLevel="|" Trans_strStand="| |" Trans_strEntrance="| |" AreaM_strCategory="|" Trans_strSeatInfo="Row AA to I:C22,C23" Trans_intQuantity="1" Trans_mnyTicketsTotal="3500.0000" Event_strCode="ET00022121" TType_strCode="T463" Session_lngSessionId="10192" />
</SeatInfos>
<AddChgss/>
</BMS>

我有一个包含所有属性列的 SQL 表。我需要解析数据并将所有数据放入一个单独的 mySQL 表中,重复的属性也应该被忽略。无法更改 XML 格式。我已经使用 xml2j 编写了一个 node.js 应用程序广告,我可以解析该字符串,但我不知道如何继续。

这是我的 node.js 代码,

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var qs = require('querystring');
var redis = require('redis').createClient();
var parseString = require('xml2js').parseString;
var count = 0;

app.get('/adminm', function (req, res) {
res.sendfile('adminmovies.html');
});

app.get('/admine', function (req, res) {
res.sendfile('adminevents.html');
});

app.post('/', function (req, res) {
count = count + 1;
var body = "";
req.on('data', function (data) {
body += data;
});
req.on('end', function () {
//console.log(body);
var xml = body;
var parsed = "";
parseString(xml, function (err, result) {
console.log(JSON.stringify(result));
redis.lpush("events", JSON.stringify(result));

});

io.emit('count1', count);
});
});
http.listen(3000, function () {
console.log('listening on *:3000');
});

现在我需要这种格式的数据,

{name: 'XYZ', age: '21', ....}

我该如何继续?

最佳答案

我认为部分问题在于您拥有的 XML 对所有内容都使用了属性。如果它使用元素可能会更容易一些。看看我的https://github.com/imbroglioj/xml-to-es它允许您在属性文件中指定您希望如何通过将子元素或属性提升到顶级等来处理生成的 JSON 对象。扩展属性文件和折叠功能以删除字段或重命名它们很容易。

关于javascript - 使用xml2js的xml解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649778/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com