コマンドラインを使用して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)

おすすめ記事