0

問題は次のとおりです。

$xml = [xml](Get-Content $USSExternalContentTypeFile)   
$xml.Model.Properties.Property. ....
$xml.Save($USSExternalContentTypeFile)   

名前 タイプ #text
---- ---- -----
Connect Integrated Security System.String textxtxtxtxtxtxtxt

<Property Name="Connect Integrated Security" Type="System.String">SSPI</Property>

複数の xml 属性で #text を置き換えるのに役立ちますか?

仕上げ: Property[2].'#text' = 'foo'

4

2 に答える 2

4

#text プロパティにアクセスするには、次の方法を試してください。

PS> $xml = [xml]'<Property Name="Connect Integrated Security" Type="System.String">SSPI</Property> '
PS> $xml.Property

Name                                    Type                                    #text
----                                    ----                                    -----
Connect Integrated Security             System.String                           SSPI

PS> $xml.Property.'#text' = 'foo'

PS> $xml.Property

Name                                    Type                                    #text
----                                    ----                                    -----
Connect Integrated Security             System.String                           foo
于 2012-04-26T00:28:53.977 に答える
1

PowerShell の XML ノード用の自動 NoteProperties の代わりに、XPath を使用して必要なノードを取得することもできます。「Connect Integrated Security」の名前属性を持つすべてのプロパティノードが必要な場合は、次を使用できます。

$nodes = $xml.SelectNodes("//Property[@Name='Connect Integrated Security']")
$nodes | % {
    $_."#text" = "SomeNewValue" # Changes SSPI to this.
}

NoteProperties に固執したい場合、これはおそらくうまくいくでしょう:

$xml.Model.Properties.Property | % {
    $_."#text" = "SomeNewValue" # Changes SSPI to this.
}
于 2012-04-26T00:58:55.713 に答える