<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