注意:我正在使用ConvertTo-XML,不能使用Export-Clixml:
我创建一个简单的PSObject:
$a = New-Object PSObject -Property @{
    Name='New'
    Server = $null
    Database = $null
    UserName = $null
    Password = $null
}
然后我使用ConvertTo-XML以下方法将其转换为XML :
$b = $a | Convertto-XML -NoTypeInformation
XML看起来像这样:
<?xml version="1.0"?>
<Objects>
  <Object>
    <Property Name="Password" />
    <Property Name="Name">New</Property>
    <Property Name="Server" />
    <Property Name="UserName" />
    <Property Name="Database" />
  </Object>
</Objects>
我无法找出点符号或XPath查询来提取属性/元素并转换$b回原始PSObject.
Jos*_*osh 17
你可以使用XPath轻松完成这项工作.虽然PowerShell通常使得使用XML非常简单,但在这种情况下,我认为使用严格的PowerShell语法的格式非常粗略.
filter XmlProperty([String]$Property) {
    $_.SelectSingleNode("/Objects/Object/Property[@Name='$Property']").InnerText
}
$Name = $b | Xmlproperty Name
$Server = $b | XmlProperty Server
# etc...
编辑:通常对包含一个或多个Object元素的XML文档执行此操作,您可以执行以下操作:
function ConvertFrom-Xml($XML) {
    foreach ($Object in @($XML.Objects.Object)) {
        $PSObject = New-Object PSObject
        foreach ($Property in @($Object.Property)) {
            $PSObject | Add-Member NoteProperty $Property.Name $Property.InnerText
        }
        $PSObject
    }
}
ConvertFrom-Xml $b
| 归档时间: | 
 | 
| 查看次数: | 33581 次 | 
| 最近记录: |