繁体   English   中英

Powershell如何确定xml中是否存在特定属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM