有没有办法使用命令行将 XML 转换为 SQL INSERT,示例如下:
<something>
<somthingelse>lol</somethingelse>
</something>
将会
INSERT INTO `database` (`something`)
VALUES
(lol)
或类似的东西。
答案1
使用xmllint
libxml 版本 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)