合并输出的XML属性

时间:2014-02-27 21:08:11

标签: xml powershell

我想创建一个关于已安装产品的txt文件报告。我从具有以下结构的XML文档中获取这些信息:

<xmlroot>
 <product definitionName="ProductName" versionMajor="1" versionMinor="1" versionBuild="111">
 </product>

现在,在我按照definitionName过滤后,我想通过连接类似“1.1.111”的版本来编写一个带有两个colomns“ProductName”和“Version”的文件。

当我这样做时:

$ProductVersions.xmlroot.product | Select-Object -Property definitionName, versionMajor,     versionMinor, versionBuild

我得到一个这样的列表:

definitionName                                  versionMajor                                   versionMinor                                    versionBuild                                  
--------------                                  ------------                                   ------------                                    ------------                                  
ProductName                                     1                                               1                                               111      

我想要的是这样一个列表:

ProductName                                   Version                          
--------------                                ------------                              
ProductName                                   1.1.111

请帮我找个方法。谢谢。

1 个答案:

答案 0 :(得分:2)

试试这个:

PS C:\> $ProductVersions.xmlroot.product |
 Select-Object -Property @{n='ProductName';e={$_.definitionName}}, @{n='Version';e={"$($_.versionMajor).$($_.versionMinor).$($_.versionBuild)"}}

ProductName                                                               Version                                                                 
-----------                                                               -------                                                                 
ProductName                                                               1.1.111                   

@Ansgar Wiechars提出的更清洁的版本:

PS C:\> $ProductVersions.xmlroot.product |
 Select-Object -Property @{n='ProductName';e={$_.definitionName}},
  @{n='Version';e={"{0}.{1}.{2}" -f $_.versionMajor, $_.versionMinor, $_.versionBuild}}

ProductName                                                               Version                                                                 
-----------                                                               -------                                                                 
ProductName                                                               1.1.111