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

Trying to move data from XML to an Excel spreadsheet

我正在尝试学习如何使用 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 这样的单个实体,但是如果我想循环处理以获取所有曲目然后我不知道如何正确编写循环。我尝试了很多不同的东西,但这是我脑海中最有意义的东西($books 是我正在处理的 XML 文档):

$row = 5
foreach ($track in $books.tracks) {
  $track = $books.tracks.track.tracktitle
  $excelworksheet.cells.item($row, 2) = $track
  $row++
}
  • 您需要访问 xml 中的 track-属性 才能实际获取轨道元素数组。 tracks 是单个节点,而它 包含 多个 track 元素(您可以作为数组访问)。
  • 您没有在循环中使用当前项目 $track
  • $books.tracks 对包含的示例无效。您缺少 xml 根元素

试试这个:

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