【发布时间】:2016-03-29 22:52:56
【问题描述】:
我想将此 xml 文件导出为 Excel (CSV)。我在网上搜索了一些例子,但我似乎找不到任何可以帮助我的东西。
我不擅长 powershell。
<?xml version="1.0" encoding="UTF-8"?>
<products updated="12/16/2015">
<product name="office">
<addresslist type="IPv6">
<address>2</address>
<address>256</address>
<address>434</address>
</addresslist>
<addresslist type="IPv4">
<address>13.107</address>
<address>13.14/24</address>
</addresslist>
<addresslist type="URL">
<address>*.google</address>
<address>*.yahoo</address>
<address>*.some other link</address>
</addresslist>
</product>
<product name="LYO">
<addresslist type="URL">
<address>*.rtrt</address>
<address>eever</address>
</addresslist>
<addresslist type="IPv4">
<address>23.178</address>
<address>23.18</address>
<address>23.19</address>
</addresslist>
<addresslist type="IPv6">
<address>2a01:13::/4</address>
<address>2a01:1</address>
</addresslist>
</product>
</products>
这是我写的,但它没有给出我需要的东西。
[xml]$file = get-content ./O365IPAddresses.xml
$xmlProperties = $file.SelectNodes("/products/product")
Foreach ($xmlProperty in $xmlProperties) {
$o = New-Object Object
Add-Member -InputObject $o -MemberType NoteProperty -Name Name -Value $xmlProperty.name
foreach ($p in $xmlProperty.addresslist)
{
$type += $p.type
$add += $p.address
}
Add-Member -InputObject $o -MemberType NoteProperty -Name Type -Value $type
Add-Member -InputObject $o -MemberType NoteProperty -Name Address -Value $add
$type="";
$add="";
#Add-Member -InputObject $o -MemberType NoteProperty -Name Name -Value $xmlProperty.name
$o
}
$o="";
这就是我需要输出的代码。
Name Type V
Office IPv4 12111,12121,12,12,1,2,12,1,2,
Office IPv6 12111,12121,12,12,1,2,12,1,2,
Office URL google, yahoo
lyo IPv4 12111,12121,12,12,1,2,12,1,2,
lyo IPv6 12111,12121,12,12,1,2,12,1,2,
lyo URL some lyn, yahoo
【问题讨论】:
-
您能否向我们展示您尝试过但没有真正奏效的方法?现在这读起来像是一个代码编写请求,这不是 SO 的目的。
-
既然你提到你对PS不太了解,我强烈建议学习如何使用帮助功能。在 PS 中输入:
help *CSV*并从那里开始
标签: xml powershell powershell-3.0