C#和PowerShell中的XPATH问题
我有以下XML文件,我想打印出baseAddress值,然后更改该值并将更新写入同一个XML文件 我的问题是,我正在PowerShell中使用以下脚本进行操作,似乎无法检索相关值。我想原因可能是元素名“system.serviceModel”中有一个符号“.”,PowerShell认为我要在system下检索serviceModel子元素是哪个?你知道如何检索baseAddress的正确值吗C#和PowerShell中的XPATH问题,c#,.net,xml,powershell,xpath,C#,.net,Xml,Powershell,Xpath,我有以下XML文件,我想打印出baseAddress值,然后更改该值并将更新写入同一个XML文件 我的问题是,我正在PowerShell中使用以下脚本进行操作,似乎无法检索相关值。我想原因可能是元素名“system.serviceModel”中有一个符号“.”,PowerShell认为我要在system下检索serviceModel子元素是哪个?你知道如何检索baseAddress的正确值吗 $FooConfig = [xml](get-content .\Foo.exe.config -Err
$FooConfig = [xml](get-content .\Foo.exe.config -ErrorAction:stop)
FooConfig.configuration.system.serviceModel.services.service.host.baseAddress
<configuration>
<system.serviceModel>
<services>
<service name="FooImpl" behaviorConfiguration="mexServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:9090/Foo" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
</configuration>
$FooConfig=[xml](获取内容。\Foo.exe.config-ErrorAction:stop)
FooConfig.configuration.system.serviceModel.services.service.host.baseAddress
提前感谢,,
George如果在元素名称周围加上“.”引号,就可以得到它 使用
$FooConfig.configuration.“system.serviceModel.services.service.host.baseAddress
如果在元素名称周围加上“.”引号,则可以得到它
使用
$FooConfig.configuration.“system.serviceModel.services.service.host.baseAddress
在某些情况下,只使用XPATH和XML API更容易,例如:
PS> $FooConfig.SelectSingleNode('//add[@baseAddress]').baseAddress = 'foo'
PS> $FooConfig.SelectSingleNode('//add[@baseAddress]').baseAddress
foo
与:
PS> $xml.configuration.'system.serviceModel'.services.service.host.baseaddresses.add.baseaddress = 'foo'
PS> $xml.configuration.'system.serviceModel'.services.service.host.baseaddresses.add.baseaddress
foo
在某些情况下,只使用XPATH和XML API更容易,例如:
PS> $FooConfig.SelectSingleNode('//add[@baseAddress]').baseAddress = 'foo'
PS> $FooConfig.SelectSingleNode('//add[@baseAddress]').baseAddress
foo
与:
PS> $xml.configuration.'system.serviceModel'.services.service.host.baseaddresses.add.baseaddress = 'foo'
PS> $xml.configuration.'system.serviceModel'.services.service.host.baseaddresses.add.baseaddress
foo
嗨,乔治,什么版本的PowerShell?嗨,乔治,什么版本的PowerShell?谢谢Andy,我有解决方案,$FooConfig.configuration。“system.serviceModel”。services.service.host.baseAddresses.add.baseAddress谢谢Andy,我有解决方案,$FooConfig.configuration。“system.serviceModel”.services.service.host.baseAddresses.add.baseaddress