Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将xml节点的值提取到powershell中的变量?_Xml_Powershell_Powershell 2.0_Powershell 3.0_Powershell 4.0 - Fatal编程技术网

如何将xml节点的值提取到powershell中的变量?

如何将xml节点的值提取到powershell中的变量?,xml,powershell,powershell-2.0,powershell-3.0,powershell-4.0,Xml,Powershell,Powershell 2.0,Powershell 3.0,Powershell 4.0,我正在构建一个powershell脚本,该脚本读取一个XML文件并从节点提取值以进行进一步计算。如何将节点值提取到变量 我已经在PS中使用XMLDOC编写了代码来读取文件并提取Power shell中的值。我能够获得单个节点的属性值。我无法提取也具有属性的节点值,并且该节点多次出现 Test.xml 预期结果 变量A应获得“02”(仅值),而“Naresh”、“Sathish”(仅值)应存储在两个不同的变量中 实际结果 变量A得到“02”-它正在工作 “Naresh”和“Sathish”都存储在

我正在构建一个powershell脚本,该脚本读取一个XML文件并从节点提取值以进行进一步计算。如何将节点值提取到变量

我已经在PS中使用XMLDOC编写了代码来读取文件并提取Power shell中的值。我能够获得单个节点的属性值。我无法提取也具有属性的节点值,并且该节点多次出现

Test.xml

预期结果

变量A应获得“02”(仅值),而“Naresh”、“Sathish”(仅值)应存储在两个不同的变量中

实际结果

变量A得到“02”-它正在工作 “Naresh”和“Sathish”都存储在变量B中,但与id和头一起存储。

[xml]$str=@'
[xml] $str = @'
<abc>
  <body>
    <Rows Count="02">
      <Row>
        <a ID="1">Name1</a>
        <a ID="2">Naresh</a>
        <a ID="3">Arvind</a>
      </Row>
      <Row>
        <a ID="1">Name2</a>
        <a ID="2">Sathish</a>
        <a ID="3">Kannan</a>
      </Row>
    </Rows>
  </body>
  </abc>
'@


$a = $str.abc.body.Rows.Row.a | Where-Object {$_.ID -eq '2'} | Select-Object -ExpandProperty '#text'
[xml]$str=@'

我们能从两个不同的变量中提取“纳雷什”和“萨提什”吗$A=Naresh$B=Sathish第一个字段可以使用where对象吗?我使用数组将值拆分为两个变量扫描我们在两个不同的变量中提取“Naresh”和“Sathish”$A=Naresh$B=Sathish第一个字段可以使用where对象吗?我使用数组将值拆分为两个变量
   [xml]$XmlDocument = Get-Content E:\Desktop\Test.xml 
   $nodes = $XmlDocument.SelectNodes('//Rows') 
   $A = $nodes.GetAttribute("count")  

   if ($A -eq '02')
    {
     $B = $XmlDocument.abc.Body.Rows.ROW.a | Where-Object {$_.ID -eq '2'}
    }
[xml] $str = @'
<abc>
  <body>
    <Rows Count="02">
      <Row>
        <a ID="1">Name1</a>
        <a ID="2">Naresh</a>
        <a ID="3">Arvind</a>
      </Row>
      <Row>
        <a ID="1">Name2</a>
        <a ID="2">Sathish</a>
        <a ID="3">Kannan</a>
      </Row>
    </Rows>
  </body>
  </abc>
'@


$a = $str.abc.body.Rows.Row.a | Where-Object {$_.ID -eq '2'} | Select-Object -ExpandProperty '#text'