
次の例のように、コマンドラインを使用して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)