에 실패합니다.XML 변환 내가 두 개의 파일이 JSON 리턴 객체
참고 : json의 대안으로 csv로 효과적으로 변환하는 것이 허용 될 수 있습니다. 업데이트 -이 SO answer에서 XMLStarlet을 지원할 수있는 다른 명령 줄 유틸리티가 있습니다. 같은 문제가 발생 모든 경우에 그러나
require "rubygems"
require "crack"
require "json"
require 'pp'
myXML = Crack::XML.parse(File.read("20141004Flemington_5start.xml"))
myJSON = myXML.to_json
final = JSON.parse(myJSON,:symbolize_names => true)
pp final
File.write('test2.json', final)
:
나는 hayxmlutils for Python에서 여러 도구 xml2json 기본적으로 this post on SO 다음 균열 보석을 시도했습니다. 는 XML이 구문 형식으로 제공 할 때마다이 경우 <Meeting />
에 내
<Meeting MeetCode="859382" InputFilename="" GenerationDate="2014-12-05T10:09:53+11:00">
<RequestInfo RequestCode="" RequestId="0"/>
모든 값을 손실됩니다. JSON으로 변환 할 때 내 값을 유지하려면 어떻게해야합니까?
<json type="object">
<Meeting type="object">
<RequestInfo type="object">
최소 XML 예제.
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="stylesheet5.xsl"?>
<Meeting MeetCode="859382" InputFilename="" GenerationDate="2014-12-05T10:09:53+11:00">
<RequestInfo RequestCode="" RequestId="0" />
<CodeType>GALLOPS</CodeType>
<MeetingCategory>Professional</MeetingCategory>
<MeetingStage>Acceptances</MeetingStage>
<MeetingStageEncoded>15</MeetingStageEncoded>
<MeetingPhase>ResultsConfirmed</MeetingPhase>
<PhaseMeetingEncoded>63</PhaseMeetingEncoded>
<NominationsClose>2014-09-29T12:00:00+10:00</NominationsClose>
<AcceptanceClose>2014-10-01T10:00:00+10:00</AcceptanceClose>
<RidersClose>2014-10-01T13:00:00+10:00</RidersClose>
<WeightsPublishing>2014-09-30T00:00:00+10:00</WeightsPublishing>
<Club ClubCode="10018" Title="Victoria Racing Club" AbrClubDesc="VRC" State="VIC" Category="Metro" />
<Track VenueName="Flemington" VenueDesc="Flemington" VenueAbbr="FLEM" VenueCode="151" TrackName="Main" TrackCode="149">
<TrackRating NumericTrackRating="3">Good</TrackRating>
<Penetrometer>4.83</Penetrometer>
<RailPosition>+9m Entire Circuit</RailPosition>
<RailPositionLastMeeting>True Position Entire Circuit</RailPositionLastMeeting>
<Weather>Fine</Weather>
<TrackSurface>Turf</TrackSurface>
<Comments>Finalised 4/10 - 7:45am Late Scratching Race 3 No. 4</Comments>
<Irrigation>Nil last 24hrs, 25mm last 7 days</Irrigation>
<Rainfall>Nil last 24hrs, 4.2mm last 7 days</Rainfall>
<RacingDirection>AntiClockwise</RacingDirection>
<TrackInfo>Penetrometer: Inside 4.85, Outside 4.85</TrackInfo>
</Track>
<MeetingType>Metro</MeetingType>
<ApprenticeMeetingType>Metro</ApprenticeMeetingType>
<MeetDate>2014-10-04</MeetDate>
<StateDesc>VIC</StateDesc>
<NumOfRaces>9</NumOfRaces>
<DayNight>Day</DayNight>
<TabStatus>true</TabStatus>
<Logos />
<XMLSchemaVersion>RISA XML 5.1</XMLSchemaVersion>
<XMLSchemaVersion>RISA XML 5.1</XMLSchemaVersion>
<Races>
<Race RaceCode="5038498" CurrentRaceStage="Results" RaceNumber="1">
<NameRaceFull StakesGroupId="346">Greenland Australia Maribyrnong Trial Stakes</NameRaceFull>
<NameRaceForm>MARIBYRNONG TRL</NameRaceForm>
<NameRaceNews>Maribyrnong Trial Stakes</NameRaceNews>
<Logos>
<Logo Id="VOBIS" Reason="Bonus Scheme" Description="Super Vobis Bonus Scheme" Image="VOBIS.png" />
</Logos>
<RaceStartTime TimeAtVenue="2014-10-04T12:40:00" AsUtc="2014-10-04T02:40:00" />
<ClosingTimes UtcOffset="10:00:00.000" Nominations="2014-09-29T12:00:00" LateNominations="2014-09-29T15:00:00" WeightsPublishing="2014-09-30T00:00:00" AcceptanceFinal="2014-10-01T10:00:00" Riders="2014-10-01T13:00:00" Scratching="2014-10-04T07:30:00" />
<NominationsRaceNumber>1</NominationsRaceNumber>
<NominationsDivisor>0</NominationsDivisor>
<GroupType>Listed</GroupType>
<RaceType>Flat</RaceType>
<EntryConditions>
<EntryCondition Type="Class" Id="~" Code="9" Short="" Medium="No class restriction" Long="No class restriction" />
<EntryCondition Type="Weight" Id="SW" Code="50" Short="SW" Medium="Set Weights" Long="Set Weights" />
<EntryCondition Type="Age" Id="2" Code="33" Short="2Y" Medium="2-Y-O" Long="Two-Years-Old" />
<EntryCondition Type="Sex" Id="~" Code="0" Short="" Medium="No sex restriction" Long="No sex restriction" />
<EntryCondition Type="Ballot" Id="BC7" Code="430001" Short="2YO SW" Medium="Early Season 2YO" Long="Selected Early Season 2YO" />
</EntryConditions>
<ApprenticeCanClaim>false</ApprenticeCanClaim>
<PrizeMoneyDetails TotalExcludingBonuses="120000.00">
<Prizes>
<PrizeMoney Position="1" Value="72000.00" />
<PrizeMoney Position="2" Value="21600.00" />
<PrizeMoney Position="3" Value="10800.00" />
<PrizeMoney Position="4" Value="5400.00" />
<PrizeMoney Position="5" Value="3000.00" />
<PrizeMoney Position="6" Value="2400.00" />
<PrizeMoney Position="7" Value="2400.00" />
<PrizeMoney Position="8" Value="2400.00" />
</Prizes>
<Bonuses>
<BonusDistribution BonusCategoryId="SVG" BonusCategoryCode="6" Scheme="VOBIS" Category="VOBIS - Group/Listed" LongDescription="This race carries a SUPER VOBIS Nominators Bonus of $10,000 for qualified horses." TotalBonus="10000.00" />
</Bonuses>
<Trophies>
<Trophy Recipient="Owner" Position="1" Value="1000.00" />
</Trophies>
<StarterSubsidy>0</StarterSubsidy>
</PrizeMoneyDetails>
<RaceDistance>1000</RaceDistance>
<DistanceApprox>false</DistanceApprox>
<TrackStraight>448</TrackStraight>
<TrackCircumference>2313</TrackCircumference>
<TrackRecords>
<TrackRecord TrackCode="149" RecordCode="436169" RaceCode="5029333">
<RaceDate>2013-02-16</RaceDate>
<RaceNumber>7</RaceNumber>
<DistanceRace>1000</DistanceRace>
<Time>00:00:55.420</Time>
<TrackRecordHorse HorseCode="790716" HorseName="Black Caviar" />
</TrackRecord>
</TrackRecords>
<SizeField>16</SizeField>
<SizeEmergency>4</SizeEmergency>
<Accepters>12</Accepters>
<Starters>11</Starters>
<WeightChange>0.00</WeightChange>
<RaceEntries>
<RaceEntry RaceEntryCode="9153413">
<Horse HorseCode="986313" HorseName="Apoloboom" Colour="BAY" Sex="C" Age="2" NamePrev="" HorseStatus="Active" HasStableReturn="true" FoalDate="2012-08-12" />
<!--StableReturnCode = 5139732-->
<TabNumber>1</TabNumber>
<RaceEntryStatusEncoded>67601</RaceEntryStatusEncoded>
<HorseOwnership>
<OfficialHorseOwners>Boom Racing 4 (Mgr J L Travaglia)</OfficialHorseOwners>
</HorseOwnership>
<Trainer TrainerCode="11156">
<Name>Robbie Laing</Name>
<Location>Cranbourne</Location>
<State>VIC</State>
<Postcode>3977</Postcode>
<Title>Mr</Title>
<PreferredName>Robbie</PreferredName>
<Surname>Laing</Surname>
<Initials>R E</Initials>
</Trainer>
<Breeding>
<Sire HorseCode="726892" HorseName="Kaphero" />
<Dam HorseCode="752264" HorseName="Apologies" />
<SireOfDam HorseCode="604480" Country="USA" HorseName="Giant's Causeway" />
<Breeder>Burnewang North Pastoral</Breeder>
</Breeding>
<JockeyRaceEntry JockeyCode="25791" Apprentice="false">
<Name>Vlad Duric</Name>
<Location>Pakenham</Location>
<State>VIC</State>
<Postcode>3810</Postcode>
<PreferredName>Vlad</PreferredName>
<Surname>Duric</Surname>
<Initials>V</Initials>
<RidingWeight>53.00</RidingWeight>
</JockeyRaceEntry>
<RacingColours>Purple, Yellow V, Purple And Yellow Diagonal Striped Sleeves, Yellow And Purple Stars Cap</RacingColours>
<BallotSequence>7=</BallotSequence>
<BarrierNumber>5</BarrierNumber>
<HandicapWeight>57.00</HandicapWeight>
<HandicapRating>0.00</HandicapRating>
<WeightPenalty>0.0</WeightPenalty>
<Gear Blinkers="true" />
<BonusIndicator SchemeName="Super Vobis">N</BonusIndicator>
<Logos>
<Logo Id="VOBIS" Reason="Bonus Scheme" Description="Super Vobis Bonus Scheme" Image="VOBIS.png" />
</Logos>
<Form>
<FormSummary />
<ResultsSummaries>
<ResultsSummary Name="TotalResults" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" PrizeMoneyExBonus="0.00" Bonus="0.00" />
<ResultsSummary Name="FirstUp" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" />
<ResultsSummary Name="SecondUp" />
<ResultsSummary Name="AtThisDistance" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" />
<ResultsSummary Name="ThisTrack" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" />
<ResultsSummary Name="TrackAndDistance" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" />
<ResultsSummary Name="Firm" />
<ResultsSummary Name="Good" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" />
<ResultsSummary Name="Soft" />
<ResultsSummary Name="Heavy" />
<ResultsSummary Name="Synthetic" />
<ResultsSummary Name="Wet" />
<ResultsSummary Name="NonWet" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" />
<ResultsSummary Name="Night" />
<ResultsSummary Name="JumpsRecord" />
<ResultsSummary Name="ThisSeason" Starts="1" Wins="0" Seconds="0" Thirds="0" PrizeMoney="0.00" />
</ResultsSummaries>
<LastStartsSummary>9</LastStartsSummary>
<LastStarts>
<HorseRaceSummary MtgDate="2014-10-04" VenueName="Flemington" VenueCode="151" AbrVenue="FLEM" RaceNumber="1" RaceCode="5038498">
<NameRaceNews>Maribyrnong Trial Stakes</NameRaceNews>
<NameRaceForm>MARIBYRNONG TRL</NameRaceForm>
<RaceDistance>1000</RaceDistance>
<GroupType>LR</GroupType>
<RaceType>Flat</RaceType>
<EntryConditions>
<EntryCondition Type="Class" Id="~" Code="9" Short="" Medium="No class restriction" Long="No class restriction" />
<EntryCondition Type="Weight" Id="SW" Code="50" Short="SW" Medium="Set Weights" Long="Set Weights" />
<EntryCondition Type="Age" Id="2" Code="33" Short="2Y" Medium="2-Y-O" Long="Two-Years-Old" />
<EntryCondition Type="Sex" Id="~" Code="0" Short="" Medium="No sex restriction" Long="No sex restriction" />
</EntryConditions>
<MeetingCategory>Professional</MeetingCategory>
<DayNight>Day</DayNight>
<ClubCode>10018</ClubCode>
<ClubCategory>Metro</ClubCategory>
<VenueCategory>Metro</VenueCategory>
<RaceStarters>11</RaceStarters>
<FinishPosition BeatenMargin="8.80" OfficialMargin="1/2 Neck">9</FinishPosition>
<MoneyRaceGrandTotal>121000.00</MoneyRaceGrandTotal>
<MoneyPrize>0.00</MoneyPrize>
<MoneyBonus>0.00</MoneyBonus>
<Jockey JockeyCode="25791" Apprentice="false">
<Name>Vlad Duric</Name>
<Location>Pakenham</Location>
<State>VIC</State>
<Postcode>3810</Postcode>
<PreferredName>Vlad</PreferredName>
<Surname>Duric</Surname>
<Initials>V</Initials>
</Jockey>
<BarrierNumber>5</BarrierNumber>
<Handicap>57.00</Handicap>
<StartingWinPrice>$13</StartingWinPrice>
<BettingFluctuations PriceOpen="$11" PriceMove1="$13" />
<OtherRunners>
<OtherRunner FinishPosition="1" Time="00:00:57.960" HorseCode="985390" HorseName="Mihalic" WinningMargin="8.80" Weight="55.00" WeightCarried="55.00" JockeyCode="22573" JockeyName="M J Zahra" Barrier="7" />
<OtherRunner FinishPosition="2" HorseCode="983001" HorseName="Iceflow" BeatenMargin="0.75" Weight="57.00" WeightCarried="57.00" JockeyCode="793032" JockeyName="D M Lane" Barrier="9" />
<OtherRunner FinishPosition="3" HorseCode="989316" HorseName="Lake Jackson" BeatenMargin="2.25" Weight="57.00" WeightCarried="57.00" JockeyCode="488500" JockeyName="M J Walker" Barrier="8" />
</OtherRunners>
<TrackCondition NumericTrackRating="3">Good</TrackCondition>
<HandicapRatingPreRace>0.00</HandicapRatingPreRace>
<WeightCarried>57.00</WeightCarried>
<InRunning Distance="800" Position="5" />
<InRunning Distance="400" Position="8" />
<DistanceSectional>600</DistanceSectional>
<TimeSectional>00:00:33.820</TimeSectional>
</HorseRaceSummary>
</LastStarts>
<AtDistance />
</Form>
<LastGear GearType="Blinkers ON" GearDate="2014-09-29" />
</RaceEntry>
</RaceEntries>
<BallotedOutEntries />
<Comments />
</Race>
</Races>
</Meeting>
XML 예제가 구문 론적으로 정확하지 않으면 사용하기에 적절하지 않습니다. 루트 노드가 필요하고 ''의 닫는 태그가 없습니다. 더 많은 링크를 제공 한 것이 좋지만 문제를 나타내는 최소한의 입력 예제를 포함해야합니다. 우리가 당신을 도울 수 있도록 도와주는 것이 중요합니다. –
감사합니다. 다른 객체 태그 에서처럼 회의 태그가 자동으로 닫히는 xml을 일부 추가 할 것입니다. 나는 xml 유효성 검사를 사용했고 그것이 연결된 파일이 맞다고 말했다. – sayth