使用命令行将 XML 转换为 SQL INSERT 语句

使用命令行将 XML 转换为 SQL INSERT 语句

有没有办法使用命令行将 XML 转换为 SQL INSERT,示例如下:

<something>
  <somthingelse>lol</somethingelse>
</something>

将会

INSERT INTO `database` (`something`)
VALUES
(lol)

或类似的东西。

答案1

使用xmllintlibxml 版本 20708:

根节点“something”的名称:xmllint --xpath "name()" file.xml

文字“哈哈”:xmllint --xpath "//*/*/text()" file.xml


脚本sql.sh:

#!/bin/bash

file="$1"
table=$(xmllint --xpath "name()" "$file")
value=$(xmllint --xpath "//*/*/text()" "$file")

cat << EOF
INSERT INTO \`${table}\`
VALUES
(${value})
EOF
$ ./sql.sh 文件.xml

输出:

INSERT INTO `something`
VALUES
(lol)

相关内容