尝试将数据从 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++
}
我正在尝试学习如何使用 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++
}