我正在处理一组游说披露记录。参议院publishes这些记录为XML文件,该文件是这样的秘书:从XML数据创建MySQL表
<Filing ID="1ED696B6-B096-4591-9181-DA083921CD19" Year="2010" Received="2011-01-01T11:33:29.330" Amount="" Type="LD-203 YEAR-END REPORT" Period="Year-End (July 1 - Dec 31)">
<Registrant xmlns="" RegistrantID="8772" RegistrantName="CERIDIAN CORPORATION" Address="4524 Cheltenham Drive Bethesda, MD 20814" RegistrantCountry="USA"/>
<Lobbyist xmlns="" LobbyistName="O'CONNELL, JAMES"/>
</Filing>
<Filing ID="179345CF-8D41-4C71-9C19-F41EB88254B5" Year="2010" Received="2011-01-01T13:48:31.543" Amount="" Type="LD-203 YEAR-END AMENDMENT" Period="Year-End (July 1 - Dec 31)">
<Registrant xmlns="" RegistrantID="400447142" RegistrantName="Edward Merlis" Address="8202 Hunting Hill Lane McLean, VA 22102" RegistrantCountry="USA"/>
<Lobbyist xmlns="" LobbyistName="Merlis, Edward A"/>
<Contributions>
<Contribution xmlns="" Contributor="Merlis, Edward A" ContributionType="FECA" Payee="DeFazio for Congress" Honoree="Cong. Peter DeFazio" Amount="250.0000" ContributionDate="2010-09-05T00:00:00"/>
<Contribution xmlns="" Contributor="Merlis, Edward A" ContributionType="FECA" Payee="Friends of Jim Oberstar" Honoree="Cong. Jim Oberstar" Amount="1000.0000" ContributionDate="2010-09-01T00:00:00"/>
<Contribution xmlns="" Contributor="Merlis, Edward A" ContributionType="FECA" Payee="McCaskill for Missouri 2012" Honoree="Senator Claire McCaskill" Amount="1000.0000" ContributionDate="2010-09-18T00:00:00"/>
<Contribution xmlns="" Contributor="Merlis, Edward A" ContributionType="FECA" Payee="Mesabi Fund" Honoree="Cong. Jim Oberstar" Amount="500.0000" ContributionDate="2010-07-13T00:00:00"/>
</Contributions>
</Filing>
正如你可以看到,一些<Filing>
标签也包含<Contribution>
标签,但别人不一样。
我在这里看到两个对象:贡献者(即说客)和贡献(即说客和国会议员之间的交易)。
我想将这些记录加载到MySQL数据库中。对我而言,逻辑结构将包括两个表格:一个用于贡献者(用于名称,ID,地址等的字段)和一个用于贡献(与金额,收件人等等以及与贡献者列表的关联链接) 。
我的问题:我正确接近这个问题吗?如果是这样,这个数据模式是否有意义?最后,我如何解析XML以将它加载到MySQL表中,因为我已经构建它们了?
我认为你是在正确的轨道上。您可以使用XSLT将任何给定的XML输入文件转换为SQL语句,然后将其作为脚本运行以加载表。 – Randy 2011-03-22 18:08:04