将 XML 转换为字典
Convert XML to Dictionary
谁能告诉我如何使用 Powershell 将 xml 文件转换为字典。
这是我的 xml 文件,
==> <xml id="ATAT_Prod">
<tag1>value1</tag1>
<tag2>value2</tag2>
</xml>
有人可以推荐我吗?提前致谢。
您必须使用 Get-Content cmdlet 加载内容并将其转换为 [xml]
。使用 SelectNodes
cmdlet 和 xpath
表达式 select 所有 后代 并将其转换为 哈希表 :
$xml = [xml] (Get-Content 'YOUR_PATH_HERE')
$xml.SelectNodes("descendant::node()") | ? Value | % { @{$_.ParentNode = $_.Value} }
输出:
Name Value
---- -----
state Texas
environment Test
isEnabled False
filepath C:\xmlfile
test Test environement strings
UAT UAT environment strings
编辑:
这是一个使用 dictionary:
的工作示例
$myDictionary = New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"
$xml = [xml] (Get-Content 'YOUR_PATH_HERE')
$xml.SelectNodes("descendant::node()") | ? Value | % $myDictionary.Add($_.ParentNode.ToString(), $_.Value) }
谁能告诉我如何使用 Powershell 将 xml 文件转换为字典。
这是我的 xml 文件,
==> <xml id="ATAT_Prod">
<tag1>value1</tag1>
<tag2>value2</tag2>
</xml>
有人可以推荐我吗?提前致谢。
您必须使用 Get-Content cmdlet 加载内容并将其转换为 [xml]
。使用 SelectNodes
cmdlet 和 xpath
表达式 select 所有 后代 并将其转换为 哈希表 :
$xml = [xml] (Get-Content 'YOUR_PATH_HERE')
$xml.SelectNodes("descendant::node()") | ? Value | % { @{$_.ParentNode = $_.Value} }
输出:
Name Value
---- -----
state Texas
environment Test
isEnabled False
filepath C:\xmlfile
test Test environement strings
UAT UAT environment strings
编辑: 这是一个使用 dictionary:
的工作示例$myDictionary = New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"
$xml = [xml] (Get-Content 'YOUR_PATH_HERE')
$xml.SelectNodes("descendant::node()") | ? Value | % $myDictionary.Add($_.ParentNode.ToString(), $_.Value) }