【发布时间】:2021-12-02 08:09:11
【问题描述】:
如何从 XML 文件获取数据到 SQL 查询,以下代码不起作用。
<FVDL>
<EngineData>
<RuleInfo>
<Rule id="13EFF385-69A9-494A-9C67-951FEDAB25ED">
<MetaInfo>
<Group name="package">Python Core xml</Group>
<Group name="inputsource">XML Document</Group>
<Group name="audience">broad</Group>
</MetaInfo>
</Rule>
<Rule id="E9DB1C0E-025E-4EBF-A804-6C3DA413E652">
<MetaInfo>
<Group name="altcategoryMIS">Python Core zipfile</Group>
<Group name="altcategoryGDPR">Access Violation</Group>
</MetaInfo>
</Rule>
</RuleInfo>
</EngineData>
</FVDL>
USE OPENXMLTesting
GO
DECLARE @XML AS XML, @hDoc AS INT
SELECT @XML = XMLData FROM XMLwithOpenXML
EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML
Select ID, name, [Group]
FROM OPENXML(@hDoc, 'FVDL/EngineData/RuleInfo')
WITH
(
ID [varchar](100) 'Rule/@id',
[name] [varchar](100) 'Rule/MetaInfo/Group/@name',
[Group] [varchar](1000) 'MetaInfo/Group/.. '
)
EXEC sp_xml_removedocument @hDoc
寻找这样的结果
| ID | Name | Group |
|---|---|---|
| 13EFF385-69A9-494A-9C67-951FEDAB25ED | package | Python Core xml |
| 13EFF385-69A9-494A-9C67-951FEDAB25ED | nputsource | XML Document |
| 13EFF385-69A9-494A-9C67-951FEDAB25ED | audience | broad |
| E9DB1C0E-025E-4EBF-A804-6C3DA413E652 | altcategoryMIS | Python Core zipfile |
| E9DB1C0E-025E-4EBF-A804-6C3DA413E652 | altcategoryGDPR | Access Violation |
【问题讨论】:
标签: sql sql-server xml openxml