考虑到 nvarchar(max) 中的单元格是两个标签之间的数字,你能告诉我如何不仅正确地解析 XML,而且还能很好地解析 XML 吗?
示例(XML):
<SignedLicenseInfo> <LicenseInfo> <ExpirationDate> 9223372036854775807 </ ExpirationDate> <AvailiableModules> 30 </ AvailiableModules> <PagesLimit> 708,976 </ PagesLimit> <PagesLimitRenewDate> 132274944000000000 </ PagesLimitRenewDate> <IsDefaultLicense> true </ IsDefaultLicense> <CustomModuleAuthorId> </ CustomModuleAuthorId> <IsCountRecognizedPagesOnly> false </ IsCountRecognizedPagesOnly> <IsCyrillicLanguageEnabled> true </ IsCyrillicLanguageEnabled> <MaximumNumberOfTemplateFields> 2147483647 </ MaximumNumberOfTemplateFields> <Type> 11 </ Type> <Amount> 0 </ Amount> </ StationInfo > </ LicenseStationInfo> <CustomFeatures> </ CustomFeatures> <LocalExpirationDate> 132271122849228006 </ LocalExpirationDate> </ LicenseInfo> <Signature> XXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYXXXXXXXXXdfsd </ Signature> </ SignedLicenseInfo>
您需要获取 (708976) 中的内容。我在数据库中得到以下查询:
SELECT substring (s.Value, CHARINDEX ('<PagesLimit>', s.Value) +12, CHARINDEX ('</PagesLimit>', s.Value, CHARINDEX ('<PagesLimit>', s.Value) +12) - CHARINDEX ('<PagesLimit>', s.Value) -12) as My_String
from dbo.Settings s
如何使它更简洁和合乎逻辑?而不是通过选择来回的字符数。谢谢。