【问题标题】:How to read certain values from .config file based on a particular value如何根据特定值从 .config 文件中读取特定值
【发布时间】:2016-09-16 12:02:04
【问题描述】:

我正在尝试根据特定键将某个值从 .config 文件插入到 SQL Server 表中。

简化的 .config 文件如下所示:

<configuration>
  <appSettings>
    <add key="supportingLocalReview" value="true" />
    <add key="localFilingReviewServiceProxyAddress" value="http://web.myflcourtaccess.com:25500/SoapOutgoingRouter.svc/SecureMtom" />
    <add key="addReceivedStamp" value="true" />
  </appSettings>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding />
    </bindings>
    <behaviors />
    <client>
      <endpoint address="http://fca.com:155/RecordMDE/RecordMDE.svc" binding="basicHttpBinding" bindingConfiguration="IntranetMtom" contract="Oasis.LegalXml.CourtFiling" name="RecordMDEServiceNew" />
    </client>
  </system.serviceModel>
</configuration>

我的初始过程来自这个thread,我在其中创建了一个表并使用 OPENROWSET 将整个文件插入到表中:

INSERT @ConfigTable
       SELECT a.* FROM OPENROWSET(BULK '\\Directory\Configuration\Broward_CMS_Interface_1.config', SINGLE_CLOB ) a

SELECT * FROM @ConfigTable;

如果是key="supportingLocalReview" value="true",我想插入到配置表中的是端点地址“http://fca.com:155/RecordMDE/RecordMDE.svc”,但我不确定如何实现。

有什么建议吗?

【问题讨论】:

    标签: xml tsql config sql-server-2014


    【解决方案1】:

    如果您以这种方式读取 XML 文件,您将不会创建表...您只是按原样读取 XML。我想您的变量“@ConfigTable”被声明为表并允许在列中插入 XML。

    因此,您的 SELECT * FROM @ConfigTable 将返回您的 XML - 但不是表格...

    我将您的 XML 保存到本地磁盘上的文件中

    此代码返回supportingLocalReviewendpoint address 的值:

    WITH MyConfigFile(AsXML) AS
    (
        SELECT CAST(BulkColumn AS XML) FROM OPENROWSET(BULK 'f:\test.xml', SINGLE_CLOB ) a
    )
    SELECT A.B.value('(appSettings/add[@key="supportingLocalReview"]/@value)[1]','bit') AS supportingLocalReview
          ,A.B.value('(system.serviceModel/client/endpoint/@address)[1]','nvarchar(max)') AS endPointAddress
    FROM MyConfigFile 
    CROSS APPLY MyConfigFile.AsXML.nodes('configuration') AS A(B)
    

    按照这个模板将其他值放入表格结果集中应该很容易......

    那么你想用这些值做什么应该没问题......

    【讨论】:

    • 谢谢 - 效果很好。可能会发布一个后续问题,如果 LocalReview = False 来阅读另一个 URL,希望你能插话!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 2020-09-17
    • 1970-01-01
    相关资源
    最近更新 更多