아래 예와 같이 명령줄을 사용하여 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)