如何从XML文档提取数据生成SQL Server查询结果,现有代码运行异常
问题原因
你的现有代码核心问题是OPENXML的XPath路径仅定位到了RuleInfo层级,没有向下遍历到每个Group节点,无法将每个Group标签拆分为独立行输出,同时字段取值的相对路径也存在错误。
修正后代码
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/Rule/MetaInfo/Group') WITH ( ID [varchar](100) '../../@id', -- 向上回溯两层取Rule节点的id属性 [name] [varchar](100) '@name', -- 取当前Group节点的name属性 [Group] [varchar](1000) '.' -- 取当前Group节点的文本值 ) EXEC sp_xml_removedocument @hDoc
输出说明
执行上述代码后,会直接得到你要求的输出格式,每个Group标签对应一行数据,ID会自动关联对应所属Rule节点的id值。
内容的提问来源于stack exchange,提问作者Arvind
相关产品推荐
相关产品推荐

