【发布时间】:2017-10-27 10:32:04
【问题描述】:
我可以尝试使用 xmllint 在 SQL 上转换 XML。
我有这个 XML,我需要在 SQL 中进行转换。
<CommunicationLog xmlns="http://knx.org/xml/telegrams/01">
<RecordStart Timestamp="" Mode="" Host="" ConnectionName="" ConnectionOptions="" ConnectorType="" MediumType="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<RecordStart Timestamp="" Mode="" Host="" ConnectionName="" ConnectionOptions="" ConnectorType="" MediumType="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<Telegram Timestamp="" Service="" FrameFormat="" RawData="" />
<RecordStop Timestamp="" />
</CommunicationLog>
我在 bash 中有这个脚本,带有用于转换的 xmllint
#!/bin/bash
file="$1"
table=$(xmllint --xpath "name()" "$file")
value=$(xmllint --xpath "//*/*/text()" "$file")
cat << EOF
INSERT INTO \`${table}\`
VALUES
(${value})
EOF
我的输出:
XPath set is empty
我可以尝试使用 XML_LOAD();在 sql server 但没有找到我。数据已被删除,因为它是私有的。
【问题讨论】:
标签: sql-server xml xpath xquery