Converter XML para instruções SQL INSERT usando a linha de comando

1

Existe uma maneira de converter XML para SQL INSERT usando a linha de comando, eis exemplos:

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

seria

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

Ou algo assim.

    
por DisplayName 25.10.2014 / 07:44

1 resposta

1

Com xmllint usando a versão 20708 da libxml:

Nome do nó raiz "alguma coisa": xmllint --xpath "name()" file.xml

Texto "lol": xmllint --xpath "//*/*/text()" file.xml

Script 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 file.xml

Saída:

INSERT INTO 'something'
VALUES
(lol)
    
por 25.10.2014 / 08:20