【发布时间】:2016-08-02 07:52:27
【问题描述】:
我很难找到一种方法来将此自定义 SQL 脚本改进为 Umbraco 数据库。
这是获取和解析xml并选择正确值的sql脚本:
DECLARE @Title nvarchar(1000)
SET @Title =
(SELECT @NodeXml.query('//TechnicalData/title' ).value('.', 'nvarchar(max)') Title
FROM cmsContentXml xt JOIN umbracoNode un ON un.id = xt.NodeId
WHERE xt.nodeId = @NodeId)
SELECT iif(CHARINDEX('"values":null', @Title,0) > 0,'',Substring(@Title, 21, CHARINDEX('}', @Title) - 22)) Title
部分XML如下:
<?xml version="1.0"?>
<TechnicalData id="1261" key="b6a2f67a-0f0f-40dd-a3c6-c5fb9d8b78b9" parentID="1092" level="3" creatorID="0" sortOrder="12" createDate="2016-07-14T13:56:37" updateDate="2016-07-15T12:06:25" nodeName="Rioolkolken Type 1 Drainerend via de zijwanden" urlName="rioolkolken-type-1-drainerend-via-de-zijwanden" path="-1,1089,1092,1261" isDoc="" nodeType="1154" creatorName="admin" writerName="Karl" writerID="1" template="1085" nodeTypeAlias="TechnicalData">
<title>{"values":{"nl-BE":"Rioolkolken Type 1 Drainerend via de zijwanden"},"dtdGuid":"f2dfa88e-63b9-4913-80cd-64d770cef90e"}</title>
</TechnicalData>
这只是脚本的一小部分。 TechnicalData 包含大约 20 个节点,所有节点都必须进行解析。完整脚本可见here
这个自定义脚本的原因是因为我需要使用 ssrs 报告来扩展 Umbraco 站点。
【问题讨论】:
-
您使用什么版本的 SQL Server?
title的内容是 SQL Server 2016 中的 JSON,您可以使用parseJSON -
我知道,但它是 2012 年安装的。为其他偶然发现此问题的人 +1
标签: sql-server xml umbraco sqlxml