gpt4 book ai didi

xml - 使用 Powershell 从命名空间中选择 XML 节点

转载 作者:行者123 更新时间:2023-12-03 00:48:15 24 4
gpt4 key购买 nike

我有以下 xml:

<?xml version="1.0" encoding="utf-8"?>
<userSettings>
<setting name="TelephonyServerHost">
<value>sipserver.domain.local</value>
</setting>
<setting name="SipServerFqdn">
<value>sipserver.domain.local</value>
</setting>
<setting name="WebServicesHost">
<value>websvc.domain.local</value>
</setting>
<setting name="KMSettings">
<value>
<KMIndexSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<AutoIndexEnabled>false</AutoIndexEnabled>
</KMIndexSettings>
</value>
</setting>
</userSettings>

我能够使用 xpath 检索设置元素的值,但我无法找出使用命名空间查询 AutoIndexEnabled 元素的正确语法。

这在读取 KMSettings 或其他没有命名空间的节点时按预期工作:
$xml = New-Object -TypeName 'System.XML.XMLDocument'
$xml.Load($xmlFilePath)
$node = $xml.SelectSingleNode("//userSettings/setting[@name='KMSettings']")

但我无法弄清楚如何查询 AutoIndexEnabled 元素的语法。

最佳答案

我不明白这个问题。命名空间在这里无关紧要,因为您的 xml-sample 不包含前缀元素或默认命名空间。您可以像这样访问元素:

$xml.SelectNodes("//AutoIndexEnabled")

或者
$xml.SelectNodes("//setting[@name='KMSettings']//AutoIndexEnabled")

输出:
#text
-----
false

PS> $xml.SelectNodes("//AutoIndexEnabled").InnerText
false

关于xml - 使用 Powershell 从命名空间中选择 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37219247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com