需要从XML中提取属性1'st HouseNo属性,并在变量中使用该属性以在另一批中重用。
我已尝试使用findstr但无法获取特定值。我的XML如下所示。
<Homes>
<Home>
<House id="R91958E89-39D6-467C-A149-1674CA7A6D6E" Address="XYZ" MEMBER="10"/>
......
网上有大量的示例脚本和文档,解释并展示了如何处理这个用例......
示例:https://www.red-gate.com/simple-talk/sysadmin/powershell/powershell-data-basics-xml
......包括对本网站的讨论。
尽管XML片段不完整,您应该提供更完整的XML片段,但可以假设它看起来像什么。
除此之外,你没有展示你真正尝试过的东西,这意味着你需要完整的代码工作,你应该让我们真正能够指导你。
尽管如此,PowerShell还有内置的XML cmdlet来处理XML文件......
Get-Command -Name '*xml*' | ft -a
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet ConvertTo-Xml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Convert-XMLtoJSON 5.0.0.1 Sorlov.PowerShell
Cmdlet Export-Clixml 3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet Import-Clixml 3.1.0.0 Microsoft.PowerShell.Utility
# Get examples of how to use Select-Xml
Get-Help -Name Select-Xml -Examples
($MyXml | Select-Xml -XPath "//House").Node.id
# Results
R91958E89-39D6-467C-A149-1674CA7A6D6E
...或者你可以使用.Net名称空间,并选择你所追求的数据。
[xml]$MyXml = @"
<Homes>
<Home>
<House id="R91958E89-39D6-467C-A149-1674CA7A6D6E" Address="XYZ" MEMBER="10"/>
</Home>
</Homes>
"@
# Get the house id
$MyXml.Homes.Home.House.id
# Or
$MyXml.SelectSingleNode('//House').id
# Results for both commands
R91958E89-39D6-467C-A149-1674CA7A6D6E