我试图学习如何使用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++
}
答案 0 :(得分:1)
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++
}