我过去能够做类似的任务,但我不明白为什么它对这个xml不起作用。我正在使用powershell来读取requestFiltering的iis设置,但是当我在xml中搜索时,节点“fileExtensions”不被视为节点。这是xml。
<system.webServer>
<security>
<requestFiltering>
<fileExtensions allowUnlisted="true" applyToWebDAV="true">
<add fileExtension=".config" allowed="true" />
</fileExtensions>
<requestLimits>
<headerLimits>
</headerLimits>
</requestLimits>
<verbs allowUnlisted="true" applyToWebDAV="true">
</verbs>
<hiddenSegments applyToWebDAV="true">
<add segment="web.config" />
</hiddenSegments>
<alwaysAllowedUrls>
</alwaysAllowedUrls>
<alwaysAllowedQueryStrings>
</alwaysAllowedQueryStrings>
<denyUrlSequences>
</denyUrlSequences>
<denyQueryStringSequences>
</denyQueryStringSequences>
<filteringRules>
</filteringRules>
</requestFiltering>
</security>
$ val =上面的XML:
$xml = [xml]($val)
$node = $xml.SelectSingleNode("//*[local-name() = 'fileExtensions']")
$ node为空/空。怎么会?
答案 0 :(得分:1)
使用更简单的XPath查询有什么问题:
$node = $xml.SelectSingleNode('//fileExtensions')
FWIW您的原始查询适用于PowerShell v4。