簡體   English   中英

需要使用Xpath替換XML文件中的屬性值

[英]Need to replace value of an attribute in XML file using Xpath

以下是源/常規XML(Web.Config)文件的內容,在其中我必須替換屬性的值。 這需要針對多個配置文件完成,因此需要您的幫助才能使用Powershell完成此操作。 我確實嘗試過用代碼替換stackOverFlow中可用的字符串,但是dint做到了。

<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->

<configuration>
<connectionStrings>

<add name="PrcEntities"
   providerName="System.Data.SqlClient"
   connectionString="Server=DDD05DB01,63518;Database=BBBDB001;Trusted_Connection=true;multipleactiveresultsets=true;Pooling=false"/>

<add name="CoreItemContext"
 providerName="System.Data.SqlClient"
 connectionString="Server=DDD15DB03,63520;Database=BBBDB002;Trusted_Connection=true;multipleactiveresultsets=true;Pooling=true"/>

</connectionStrings>
..

..

....

</configuration>

這是我的Powershell代碼,用於從上述XML文件中查詢名為“ ConnectionString”的屬性

$Path = "C:\Ps\Web.config" 
$con="connectionString"   
[xml]$Types = Get-Content $Path 
Select-Xml -Xml $Types -XPath "//add" | Select-Object -ExpandProperty Node|Select-Object name,$con | Format-List 

這將導致:

名稱:PrcEntities connectionString:服務器= DDD05DB01,63518;數據庫= BBBDB001; 信任連接=真; multipleactiveresultsets = TRUE;池=假

名稱:CoreItemContext connectionString:服務器= DDD15DB03,63520;數據庫= BBBDB002; 信任連接= true; multipleactiveresultsets = TRUE;池=真

現在,我想用以下詳細信息替換屬性' connectionString '的值:Server = DBD05DB01,63518; Database = DDBDB001; Trusted_Connection = true; multipleactiveresultsets = true;兩個地方的存儲池= false(PrcEntities和CoreItemContext)

此更改應保存到相同的源文件。 請幫助我!

$path = "D:\Web.Config"
[xml]$xml = Get-Content $path 

$xml.configuration.connectionStrings.add | Foreach-Object {
    $_.connectionString = 'Server=DBD05DB01,63518;Database=DDBDB001;Trusted_Connection=true;multipleactiveresultsets=true;Pooling=false'
}

$xml.Save($path)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM