首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell XML属性

Powershell XML属性
EN

Stack Overflow用户
提问于 2018-03-13 05:56:14
回答 1查看 297关注 0票数 0

我有几个XML文件,需要从节点值读取和设置变量数据。

示例XML:

代码语言:javascript
复制
<Objs Version="1.1.0.1" 
xmlns="http://schemas.microsoft.com/powershell/2004/04">
<Obj RefId="0">
<TN RefId="0">
  <T>System.__ComObject#{86fd1ebe-92e2-40f3-9c03-e5f0ca55f8ab}</T>
  <T>System.__ComObject</T>
  <T>System.MarshalByRefObject</T>
  <T>System.Object</T>
</TN>
<ToString>System.__ComObject</ToString>
<Props>
  <S N="Name">copy1234</S>
</Props>

我正在编写的脚本必须读取文件并将值"copy1234“放入一个变量中。我太烂了,所以它只返回NULL...

代码语言:javascript
复制
    Get-ChildItem $ImportFolderPath -Filter *.xml | Foreach-Object {
    $currentFile = $_.FullName
    Write-Host "Processing file:   $currentfile"
    [xml]$ccXML = Get-content $currentFile


    $ccName = Select-Xml -Path $currentfile -Xpath '//objs/obj/props/S[@N="Name"]'

        Write-Host "Name of node:  $ccName"
EN

回答 1

Stack Overflow用户

发布于 2018-03-13 06:15:35

您忽略了一个事实,即XPath是区分大小写的

所以表达式应该是

代码语言:javascript
复制
$ccName = Select-Xml -Path $currentfile -Xpath '//Objs/Obj/Props/S[@N="Name"]'

如果Objs是根元素,您甚至可以通过省略//(在文档中的所有位置)并使用/(相对于根元素)来简化/优化这一点:

代码语言:javascript
复制
$ccName = Select-Xml -Path $currentfile -Xpath '/Objs/Obj/Props/S[@N="Name"]'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49245039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档