XML to Powershell Hashtable


<Test>
<TLC>FWE</TLC>
<Crew3LC>KMU</Crew3LC>
<MyText>Hello World</MyText>
</Test>

嗨,你好

在上面你看到我.xml的名字是"测试.xml"。在下面,你可以看到我的Powershell开始。

我想做的是以下内容,但我不知道从哪里开始。

我想从.xml文件中检索数据并将值保存到我的哈希表中。哈希表本身更像是一个模板,需要填充。

XML具有与哈希表TLC = TLC等相同的命名,但是我需要哈希表中XML的值。

我会使用 foreach 和一个匹配运算符以及我的过滤选择(哈希键、XML 名称、XML 名称值(来做到这一点。

将哈希键与 XML 名称匹配,如果$true则将 XML.Name.Value 保存到哈希表。

我希望你明白我的意思...我尝试了一些知识,但到目前为止一切都失败了。

我的你们可以帮我吗?!

# XML Path
$XMLSource = "C:TestTest.xml"
# Tempalte Hashtable
$XMLTemplatevalues = @{
TLC      = 'TLC'
Crew3LC  = 'Crew3LC'
MyText   = 'MyText'
}
# Get XML Content
[xml]$GetXMLContent = Get-Content $XMLSource
#HashKey
$XMLTemplatevalues.Keys
#XML Name
$GetXMLContent.DocumentElement.ChildNodes.Name
#XML Name - Value
$GetXMLContent.DocumentElement.ChildNodes.'#text'

一个简单的解决方案,适用于简单的文档,例如您问题中的文档 (PSv4+(:

$xmlDoc = [xml] (Get-Content -Raw "C:TestTest.xml")
# Initialize the results hashtable; make it ordered to preserve 
# input element order.
$ht = [ordered] @{}  
# Loop over all child elements of <Test> and create matching
# hashtable entries.
$xmlDoc.Test.ChildNodes.ForEach({ $ht[$_.Name] = $_.InnerText })
# Output the resulting hashtable.
$ht

使用示例文档,这将产生:

Name                           Value                                                                                                                                                
----                           -----                                                                                                                                                
TLC                            FWE                                                                                                                                                  
Crew3LC                        KMU                                                                                                                                                  
MyText                         Hello World                                                                                                                                          

最新更新