我有以下xml数据,我需要把它放在mysql数据库中。我现在正在单独读取标签名称和值以将数据放入DB中。任何人都可以帮助我,如果像datatable这样的东西直接使用mydata.xml生成表并存储在数据库中。
\\ mydata.xml
<arbitrarytag xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="#local">
<xs:schema id="local">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="qty" type="xs:integer" />
<xs:element name="firstName" type="xs:string" />
<xs:element name="date" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<root>
<qty>25</qty>
<firstName>John</firstName>
<date>1972-08-30T00:00:00+05:30</date>
</root>
</arbitrarytag>
在我解析xml并获取数据的代码下面。
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse("mydata.xml");
NodeList nList = doc.getElementsByTagName("*");
Node n = nList.item(0);
Element ele = (Element) nNode;
String tag = ele.getNodeName();
String val = ele.getChildNodes().item("qty").getTextContent();
有没有办法使用mydata.xml创建表并存储在数据库中
答案 0 :(得分:0)
如果您只想将XML数据导入MySQL数据库,可以使用LOAD XML。以下是完成此操作的示例:
创建XML文件并将其保存在文件系统的目录中,让我们说一下Linux系统上的/tmp
目录。所以我创建了一个名为mydata.xml
的文件,其中包含以下内容:
<root>
<qty>25</qty>
<firstname>John</firstname>
<some_date>1972-08-30T00:00:00+05:30</some_date>
</root>
在数据库中创建一个表,将tab1
称为:
create table tab1 (qty int, firstname varchar(30), some_date datetime);
在MySQL控制台上执行以下语句:
mysql> load xml local infile '/tmp/mydata.xml' into table tab1 rows identified by '<root>';
其中/tmp/mydata.xml
是XML文件的路径(在我的情况下是Linux系统上的tmp目录)。
如果按照我的描述做的话,结果就是结果:
的MySQL&GT;从tab1中选择*;
+ ------ + ----------- + --------------------- +
|数量|名字| some_date |
+ ------ + ----------- + --------------------- +
| 25 |约翰| 1972-08-30 00:00:00 |
+ ------ + ----------- + --------------------- +
套装中的1行(0,00秒)
注意:导入时,时间戳中的偏移量才会被截断。如果这很重要,请查看MySQL文档如何正确执行。