获取XML字段XQuery SQL Server 2008中的节点数
发布时间:2020-12-16 07:43:43 所属栏目:百科 来源:网络整理
导读:我正在尝试获取 XML字段中的节点数.但我总是看到0的结果.这是我的查询的样子. DECLARE @XmlTable TABLE (XmlResult XML)INSERT INTO @XmlTable EXECUTE [dbo].usp_GetBooks @EditionId=400--select * from @XmlTableSELECT--Count number of nodes COUNT(*)
我正在尝试获取
XML字段中的节点数.但我总是看到0的结果.这是我的查询的样子.
DECLARE @XmlTable TABLE (XmlResult XML) INSERT INTO @XmlTable EXECUTE [dbo].usp_GetBooks @EditionId=400 --select * from @XmlTable SELECT --Count number of nodes COUNT(*) AS BooksCount FROM ( SELECT XmlResult FROM @XmlTable ) AS XmlTable(XmlColumn) CROSS APPLY XmlColumn.nodes('./books/book') XmlTableFunction(XmlColumn2); 我的XML看起来像: <Version number ="1"> <books> <book> <name> </name> <author></author> </book> <book> <name> </name> <author></author> </book> </books> </Version>
我认为你的XPath表达式是错误的 – 尝试这样做:
DECLARE @XmlTable TABLE (XmlResult XML) INSERT INTO @XmlTable EXECUTE [dbo].usp_GetBooks @EditionId=400 SELECT COUNT(*) AS BooksCount FROM (SELECT XmlResult FROM @XmlTable) AS XmlTable(XmlColumn) CROSS APPLY XmlColumn.nodes('/Version/books/book') XmlTableFunction(XmlColumn2) 甚至更简单: DECLARE @XmlTable TABLE (XmlResult XML) INSERT INTO @XmlTable EXECUTE [dbo].usp_GetBooks @EditionId=400 SELECT XmlResult.value('count(/Version/books/book)','int') FROM @XmlTable (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |