尝试将数据从XML移动到Excel电子表格

时间:2016-04-18 18:17:50

标签: xml excel powershell powershell-v2.0

我试图学习如何使用PowerShell加速某些工作中的任务。

我的目标是获取一个XML文档,其中列出了有关产品的一些数据,并从某个定期子节点获取数据并将其放入Excel中的新行。

所以XML可能看起来像这样(包括" sequence"属性):

<xml>  
  <tracks> 
    <track sequence="1"> 
      <tracktitle>StuffIWant</tracktitle>
    </track>
    <track sequence="2">
      <tracktitle>StuffIWant2</tracktitle>
    </track>
    <track sequence="3">
      <tracktitle>StuffIWant3</tracktitle>
    </track>
  </tracks>
</xml> 

我想把每个tracktitle放在excel的一行中。

我可以在Excel中放置一个特定的东西,比如xml.artist.artistname这样的单个实体,但如果我想循环播放所有曲目的过程,那么我就不会# 39;知道如何正确编写循环。我已经尝试了很多不同的东西,但是我脑子里最有意义的东西($books是我正在使用的XML文档):

$row = 5
foreach ($track in $books.tracks) {
  $track = $books.tracks.track.tracktitle
  $excelworksheet.cells.item($row, 2) = $track
  $row++
}

1 个答案:

答案 0 :(得分:1)

  • 您需要访问xml中的track - 属性才能实际获取track-elements数组。 tracks是单个节点,而包含多个track - 元素(您可以作为数组访问)。
  • 您没有在循环中使用当前项$track
  • $books.tracks对所包含的示例无效。你错过了xml root-element

试试这个:

$row = 5
foreach ($track in $books.xml.tracks.track) {
    $title = $track.tracktitle
    $excelworksheet.cells.item($row, 2) = $title
    $row++
}