2
このコード:更新アレイ素子
$test = @"
<Test>
<Child>Hello</Child>
<Child>World</Child>
</Test>
"@
$xml = [xml]$test
$xml.Test.Child[1]
収率:
World
次に、このコード:
$xml.Test.Child[1] = "StackOVerflow"
$xml.InnerXml
収率:
<Test><Child>Hello</Child><Child>World</Child></Test>
2番目のChild
ノードがWorld
からStackOverflow
に更新されないのはなぜですか?
さて、何か別のことを試してみましょう:
$ipaddress=([System.Net.DNS]::GetHostAddresses($hostname)|Where-Object {$_.AddressFamily -eq "InterNetwork"} | select-object IPAddressToString)[0].IPAddressToString
は、今私は
$ipaddress
の種類があるのだろうか:どうやらそれは、文字列が
$ipaddress.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
です。
$xml.Test.ChildNodes[1].'#text' = $ipaddress
Cannot set "#text" because only strings can be used as values to set XmlNode properties.
At line:1 char:1
+ $xml.Test.ChildNodes[1].'#text' = $ipaddress
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], SetValueException
+ FullyQualifiedErrorId : XmlNodeSetShouldBeAString
$ipaddress
は文字列です!
これは最終的に動作します:何が起こっている
$xml.Test.ChildNodes[1].'#text' = [string]$ipaddress
?
同じ動作PowerShellの6.0.0-alpha.13に –
はこのいただきありがとうございますが、あなたは気づいているかもしれないとして、私はしました元の質問そのものに同じ仕事を掲載しました。 –