使用自定义元素标记名称将数组转换为xml

时间:2012-12-18 06:50:29

标签: powershell

我有以下Powershell脚本。

$load = @(@(1, 2), @(3))
$Load | % { "[$_]" }
$Date = Get-Date "2012-01-01"
$xml = $Load | ConvertTo-Xml -NoTypeInformation
$xml.OuterXml

代码生成以下结果。

[1 2]
[3]
<?xml version="1.0"?>
<Objects>
  <Object>
    <Property>1</Property>
    <Property>2</Property>
  </Object>
  <Object>
    <Property>3</Property>
   </Object>
 </Objects>

但是我希望能够指定xml元素名称并添加额外的Date(常量)元素。这是一种简单的方法吗?

<?xml version="1.0"?>
<Groups>
  <Group>
    <Item><ID>1</ID><Date>2012-01-01</Date></Item>
    <Item><ID>2</ID><Date>2012-01-01</Date></Item>
   </Group>
  <Group>
    <Item><ID>3</ID><Date>2012-01-01</Date></Item>
  </Group>
</Groups>

我尝试了以下“新对象”方法,但结果非常冗长而不是我想要的。

$load = @(@(1, 2), @(3))
$Load | % { "[$_]" }
$Date = Get-Date "2012-01-01"
$xml = $Load | 
    % { 
        @(, @{ ID = $_; Date = $Date }) 
    } | 
    ConvertTo-Xml -NoTypeInformation 
$xml.OuterXml 

1 个答案:

答案 0 :(得分:0)

两种解决方案:

  1. Select-Xml
  2. 普通老字符串连接