gpt4 book ai didi

java - XML 解析为 SQL 代码

转载 作者:行者123 更新时间:2023-11-29 03:20:49 25 4
gpt4 key购买 nike

我将获得包含 XML 代码的文件夹。我需要将所有这些代码放入数据库中,因此我需要一种将 XML 解析为 SQL 的算法。

private static void parseXml(String xml) {
Document doc = Jsoup.parse(xml);
StringBuilder queryBuilder;
StringBuilder columnNames;
StringBuilder values;

for (Element row : doc.select("row")) {
// Start the query
queryBuilder = new StringBuilder("insert into customer(");
columnNames = new StringBuilder();
values = new StringBuilder();

for (int x = 0; x < row.children().size(); x++) {

// Append the column name and it's value
columnNames.append(row.children().get(x).tagName());
values.append(row.children().get(x).text());

if (x != row.children().size() - 1) {
// If this is not the last item, append a comma
columnNames.append(",");
values.append(",");
}
else {
// Otherwise, add the closing paranthesis
columnNames.append(")");
values.append(")");
}
}

// Add the column names and values to the query
queryBuilder.append(columnNames);
queryBuilder.append(" values(");
queryBuilder.append(values);

// Print the query
System.out.println(queryBuilder);
}

输入:

<Customers>
<row>
<CustId>1</CustId>
<Name>Woodworks</Name>
<City>Baltimore</City>
</row>
<row>
<CustId>2</CustId>
<Name>Software Solutions</Name>
<City>Boston</City>
</row>
<row>
<CustId>3</CustId>
<Name>Food Fantasies</Name>
<City>New York</City>
</row>
</Customers>

输出:

insert into customer(custid,name,city) values(1,Woodworks,Baltimore)
insert into customer(custid,name,city) values(2,Software Solutions,Boston)
insert into customer(custid,name,city) values(3,Food Fantasies,New York)

此代码的问题是硬编码为仅适用于该格式。我需要一个通用的算法,以便它可以运行任何 xml 代码并提取数据。到目前为止,我不知道我将获得的 xml 文件的格式。

你能帮我建立一个算法,可以为任何 XML 文件提供 SQL 语句吗?谢谢。

最佳答案

如果不知道模式是什么,就不可能将 XML 文档的数据插入表中,除非您计划在每次获得具有新模式的 XML 文档时创建一个新表。您可能设置了具有模式 A 和模式 B 的表,但如果您获得具有模式 C 的 XML 文件,它不适合任何一个表,因此从中构建 INSERT 不会让您有任何帮助。

如果您有 XML 文件可能的一系列模式,我会在您的 Java 中设置某种测试来确定模式(可能使用一组 XSD 文件)并选择将数据转储到适当的表中,然后基于该表构建和执行 SQL 语句。

如果您真的希望能够获取任何 XML 文件并将其放入数据库,您可能需要查看this。计算器问题。从收到的任何 XML 文件中获得 XSD 后,您应该能够用 Java 解析它并生成构建适合它的表所需的 SQL,然后解析 XML 文件并将其放入其中。老实说,我会质疑为什么您不知道收到的文件的格式,看看您是否可以确定格式并使用第一个选项。

关于java - XML 解析为 SQL 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45533163/

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