根据复杂xml文件设置表结构
实现读取xml文件内容插入数据库功能,xml文件比较复杂,不知道怎么创建表结构,主要是各个节点深度不一样。哪位大神指点一下,(最好能给一张表结构)
xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE GranuleMetaDataFile SYSTEM "http://ecsinfo.gsfc.nasa.gov/ECSInfo/ecsmetadata/dtds/DPL/ECS/ScienceGranuleMetadata.dtd">
<GranuleMetaDataFile>
<DTDVersion>1.0</DTDVersion>
<DataCenterId>EDC</DataCenterId>
<GranuleURMetaData>
<GranuleUR>SC:MCD12Q1.005:2083873361</GranuleUR>
<DbID>2083873361</DbID>
<InsertTime>2011-02-28 13:49:54.786</InsertTime>
<LastUpdate>2011-02-28 13:49:54.796</LastUpdate>
<CollectionMetaData>
<ShortName>MCD12Q1</ShortName>
<VersionID>5</VersionID>
</CollectionMetaData>
<DataFiles>
<DataFileContainer>
<DistributedFileName>MCD12Q1.A2009001.h27v04.005.2011059194114.hdf</DistributedFileName>
<FileSize>92268651</FileSize>
<ChecksumType>CKSUM</ChecksumType>
<Checksum>2925272638</Checksum>
<ChecksumOrigin>DataProvider</ChecksumOrigin>
</DataFileContainer>
</DataFiles>
<ECSDataGranule>
<SizeMBECSDataGranule>87.9942</SizeMBECSDataGranule>
<ReprocessingPlanned>further update is anticipated</ReprocessingPlanned>
<ReprocessingActual>reprocessed</ReprocessingActual>
<LocalGranuleID>MCD12Q1.A2009001.h27v04.005.2011059194114.hdf</LocalGranuleID>
<DayNightFlag>Day</DayNightFlag>
<ProductionDateTime>2011-02-28 19:41:14.000</ProductionDateTime>
<LocalVersionID>2.2.1</LocalVersionID>
</ECSDataGranule>
<PGEVersionClass>
<PGEVersion>5.1.4</PGEVersion>
</PGEVersionClass>
<RangeDateTime>
<RangeEndingTime>00:50:00.000000</RangeEndingTime>
<RangeEndingDate>2009-12-31</RangeEndingDate>
<RangeBeginningTime>01:25:00.000000</RangeBeginningTime>
<RangeBeginningDate>2009-01-01</RangeBeginningDate>
</RangeDateTime>
<SpatialDomainContainer>
<HorizontalSpatialDomainContainer>
<GPolygon>
<Boundary>
<Point>
<PointLongitude>117.284874</PointLongitude>
<PointLatitude>39.869967</PointLatitude>
</Point>
<Point>
<PointLongitude>140.232628</PointLongitude>
<PointLatitude>50.125285</PointLatitude>
</Point>
<Point>
<PointLongitude>156.871362</PointLongitude>
<PointLatitude>49.895629</PointLatitude>
</Point>
<Point>
<PointLongitude>131.040542</PointLongitude>
<PointLatitude>39.706232</PointLatitude>
</Point>
</Boundary>
</GPolygon>
</HorizontalSpatialDomainContainer>
</SpatialDomainContainer>
<MeasuredParameter>
<MeasuredParameterContainer>
<ParameterName>Land_Cover_Type_1</ParameterName>
<QAStats>
<QAPercentMissingData>0</QAPercentMissingData>
<QAPercentOutofBoundsData>0</QAPercentOutofBoundsData>
<QAPercentInterpolatedData>14</QAPercentInterpolatedData>
</QAStats>
<QAFlags>
<AutomaticQualityFlag>Passed</AutomaticQualityFlag>
<AutomaticQualityFlagExplanation>To be set as 'passed' or 'failed' to indicate failure of PGE test.</AutomaticQualityFlagExplanation>
<OperationalQualityFlag>Passed</OperationalQualityFlag>
<OperationalQualityFlagExplanation>Passed</OperationalQualityFlagExplanation>
<ScienceQualityFlag>Not Investigated</ScienceQualityFlag>
<ScienceQualityFlagExplanation>See http://landweb.nascom/nasa.gov/cgi-bin/QA_WWW/qaFlagPage.cgi?sat=aqua the product Science Quality status.</ScienceQualityFlagExplanation>
</QAFlags>
</MeasuredParameterContainer>
</MeasuredParameter>
<Platform>
<PlatformShortName>Terra</PlatformShortName>
<Instrument>
<InstrumentShortName>MODIS</InstrumentShortName>
<Sensor>
<SensorShortName>MODIS</SensorShortName>
</Sensor>
</Instrument>
</Platform>
<Platform>
<PlatformShortName>Aqua</PlatformShortName>
<Instrument>
<InstrumentShortName>MODIS</InstrumentShortName>
<Sensor>
<SensorShortName>MODIS</SensorShortName>
</Sensor>
</Instrument>
</Platform>
<PSAs>
<PSA>
<PSAName>QAPERCENTGOODQUALITY</PSAName>
<PSAValue>48</PSAValue>
</PSA>
<PSA>
<PSAName>QAPERCENTOTHERQUALITY</PSAName>
<PSAValue>51</PSAValue>
</PSA>
<PSA>
<PSAName>QAPERCENTNOTPRODUCEDCLOUD</PSAName>
<PSAValue>0</PSAValue>
</PSA>
<PSA>
<PSAName>QAPERCENTNOTPRODUCEDOTHER</PSAName>
<PSAValue>1</PSAValue>
</PSA>
<PSA>
<PSAName>HORIZONTALTILENUMBER</PSAName>
<PSAValue>27</PSAValue>
</PSA>
<PSA>
<PSAName>VERTICALTILENUMBER</PSAName>
<PSAValue>04</PSAValue>
</PSA>
<PSA>
<PSAName>TileID</PSAName>
<PSAValue>51027004</PSAValue>
</PSA>
</PSAs>
<InputGranule>
<InputPointer>MOD12Q1.A2004001.h27v04.004.2006117174419.hdf</InputPointer>
<InputPointer>LC_LW_TEMP.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC1.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC2.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC3.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC4.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC5.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC1A.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC2A.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC3A.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC4A.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LC5A.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LCS.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LCS_P.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LCP1.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LCP2.A2009001.h27v04.hdf</InputPointer>
<InputPointer>LCP3.A2009001.h27v04.hdf</InputPointer>
</InputGranule>
</GranuleURMetaData>
</GranuleMetaDataFile>