尝试将数据从XML移动到Excel电子表格
我正在尝试学习如何使用PowerShell加速工作中的某些任务 我的目标是获取一个XML文档,其中列出了有关产品的一些数据,并从某个重复出现的子节点获取数据,然后将其放入Excel中的新行 因此XML可能看起来像这样(包括“sequence”属性):尝试将数据从XML移动到Excel电子表格,xml,excel,powershell,powershell-2.0,Xml,Excel,Powershell,Powershell 2.0,我正在尝试学习如何使用PowerShell加速工作中的某些任务 我的目标是获取一个XML文档,其中列出了有关产品的一些数据,并从某个重复出现的子节点获取数据,然后将其放入Excel中的新行 因此XML可能看起来像这样(包括“sequence”属性): 您需要访问xml中的track-属性,以实际获取track元素的数组轨迹是单个节点,而它包含多个轨迹-元素(可以作为数组访问) 您没有在循环中使用当前项$track $books.tracks对包含的示例无效。您缺少xml根元素 试试这个: $
- 您需要访问xml中的
-属性,以实际获取track元素的数组<代码>轨迹是单个节点,而它包含多个track
-元素(可以作为数组访问)轨迹
- 您没有在循环中使用当前项
$track
对包含的示例无效。您缺少$books.tracks
根元素xml
$row = 5
foreach ($track in $books.xml.tracks.track) {
$title = $track.tracktitle
$excelworksheet.cells.item($row, 2) = $title
$row++
}
非常感谢您提供的信息!我有一个问题-我正在使用的xml文件实际上没有
元素,它仍然是必需的吗?我只是将它放在示例xml设置中,但忘记在我的问题中添加它。另外,在您的示例中,系统如何知道$track指向.track节点?您是否也可以将第3行写成$blue=$blue.tracktitle
?或者名称实际上必须与xml节点匹配吗?如果它不在真实文件中,则不需要访问xml
,但我必须使用它,因为xml树是在循环开始时以这种方式在示例输入中构建的,$track
是当前的track
-项,但是我用tracktitle替换了$track
的值。现在将其更改为$title
,以澄清问题(sry,我的答案基本上是你的复制粘贴,所以我没有注意到它)。:-)xml文件和变量名之间没有关系。变量可以被命名为任何你想要的。啊,好的,酷。是的,我看到的很多教程/示例都有与它们想要解决的任何问题相匹配的变量。当然,这对于整洁和可读性来说是有意义的,但对于像我这样的书呆子来说,我认为这是必需的,这让我很反感。顺便说一句,你的回答完全符合我的要求!我真是太感谢你了!
$row = 5
foreach ($track in $books.tracks) {
$track = $books.tracks.track.tracktitle
$excelworksheet.cells.item($row, 2) = $track
$row++
}
$row = 5
foreach ($track in $books.xml.tracks.track) {
$title = $track.tracktitle
$excelworksheet.cells.item($row, 2) = $title
$row++
}