[英]Powershell how to determine if specific attribute exists in xml
我过去可以执行类似的任务,但我不明白为什么它不适用于此xml。 我正在使用Powershell读取iis设置来进行requestFiltering,但是当我在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为空/空白。 怎么会?
使用更简单的XPath查询有什么问题:
$node = $xml.SelectSingleNode('//fileExtensions')
FWIW您的原始查询在PowerShell v4上对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.