我很難找到一種方法將此自定義SQL腳本改進爲Umbraco數據庫。如何使這個SQL函數更快地解析XML
下面是sql腳本獲取並解析XML,並選擇正確的值:
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' – gofr1
我知道,但它是2012年的安裝。 +1爲其他人絆倒這Q –