2015-06-30 42 views
0

我需要更新XML文件的network host部分。您會從下面的示例中看到,這四個部分是雙引號的。我在PowerShell腳本中發現很難用雙引號更新。我已閱讀了WWW和StackOverflow上的許多帖子以獲得解決方案。我從當前代碼和xml中包含輸出。任何在這方面的幫助都會受到歡迎。更新XML webconfig文件時保留多個雙引號

運行PowerShell之後的XML中的預期結果。

<system.net> 
<mailSettings> 
<smtp>   
<network host="mailtrap.io" port="1234" userName="3987455k61f63dd421" password="d6jjjcfc2bf76889" /> 
</smtp> 

PowerShell代碼

$root.SelectSingleNode("//system.net/mailSettings/smtp/network").host= "`"mailtrap.io`" port=`"1234`" userName=`"3987455k61f63dd421`" password=`" d6jjjcfc2bf76889`"" 
在XML

實際輸出後的代碼運行(注意的&quot;代替"):

<network host="&quot;mailtrap.io&quot; port=&quot;25252&quot; userName=&quot; 3987455k61f63dd421&quot; password=&quot;d6jjjcfc2bf76889&quot;" /> 
+0

你的問題是模糊的,把你的PowerShell代碼,我們儘量幫你。 – Turrican

回答

0

你誤解了你的XML的結構。你沒有network host節點存在,但network節點有4個屬性:

  • host
  • port
  • userName
  • password

您需要將值分配給每個屬性分開:

$node = $root.SelectSingleNode('//system.net/mailSettings/smtp/network') 
$node.host  = 'mailtrap.io' 
$node.port  = '1234' 
$node.userName = '3987455k61f63dd421' 
$node.password = 'd6jjjcfc2bf76889' 

如果屬性尚不存在的節點,你可以這樣創建它們:

$attr = $root.CreateAttribute('host') 
$attr.Value = 'mailtrap.io' 
$node.Attributes.Append($attr) 
+0

嗨Turican。抱歉回覆晚了。不知道我的帖子中有什麼含糊不清,但感謝提供幫助。安斯加爾。我會在早上試試你的建議。感謝代碼。 – user2987451

+0

@ user2987451您的問題實際上並不明確,但由於格式不正確(它隱藏了部分代碼),它似乎出現了這種情況。 –