使用 xPath .SelectSingleNode 的 Powershell 脚本无法从 web.config 文件 xmlns 中提取值
Powershell script using xPath .SelectSingleNode not working on extracting values from web.config file xmlns
我与正常的 xml 略有不同 xml,如下所示,xmlns 不在根级别,它距离根有 2 级深度,为此我'我无法使用以下解决方案。谁能帮我 select 节点。提前致谢。
我无法使用下面的代码片段 select 节点
$ns = New-Object System.Xml.XmlNamespaceManager($WebConfigXml.NameTable)
$ns.AddNamespace("ns", $WebConfigXml.DocumentElement.NamespaceURI)
$node = $WebConfigXml.SelectSingleNode("//ns:add[@key='SiteDomain']", $ns)
XML :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<app1>
</app1>
<assembly>
<runtime xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<location path="." inheritInChildApplications="false">
<appSettings>
<!--IT Ops-->
<add key="SomeOtherKey" value="SomeOtherValue" />
<add key="SiteDomain" value="somedomain.com" />
<add key="SomeOtherKey" value="SomeOtherValue" />
....
</appSettings>
</location>
</runtime>
</assembly>
</configuration>
您的命名空间在 $ns
中未正确初始化。您需要向下钻取到包含命名空间定义的节点:
$ns.AddNamespace('ns',$WebConfigXml.configuration.assembly.runtime.NamespaceURI)
我与正常的 xml 略有不同 xml,如下所示,xmlns 不在根级别,它距离根有 2 级深度,为此我'我无法使用以下解决方案。谁能帮我 select 节点。提前致谢。
我无法使用下面的代码片段 select 节点
$ns = New-Object System.Xml.XmlNamespaceManager($WebConfigXml.NameTable)
$ns.AddNamespace("ns", $WebConfigXml.DocumentElement.NamespaceURI)
$node = $WebConfigXml.SelectSingleNode("//ns:add[@key='SiteDomain']", $ns)
XML :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<app1>
</app1>
<assembly>
<runtime xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<location path="." inheritInChildApplications="false">
<appSettings>
<!--IT Ops-->
<add key="SomeOtherKey" value="SomeOtherValue" />
<add key="SiteDomain" value="somedomain.com" />
<add key="SomeOtherKey" value="SomeOtherValue" />
....
</appSettings>
</location>
</runtime>
</assembly>
</configuration>
您的命名空间在 $ns
中未正确初始化。您需要向下钻取到包含命名空间定义的节点:
$ns.AddNamespace('ns',$WebConfigXml.configuration.assembly.runtime.NamespaceURI)