You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell处理YouTube XML数据:如何避免生成嵌套值对象

解决PowerShell中YouTube RSS数据提取的扁平化对象生成问题

问题根源

直接通过[PSCustomObject]@{}创建对象时,$BloatedObject.Title和$BloatedObject.VideoID返回的是数组类型,最终生成的是一个包含两个数组属性的单一对象,而非每个视频对应独立对象的集合。而Select-Object会自动遍历$BloatedObject中的每个视频条目,逐个提取属性,因此能输出扁平化的对象列表。

正确解决方案

遍历$BloatedObject中的每个视频条目,为每个条目单独创建自定义对象,同时完成VideoID到完整链接的转换:

$SmallObject = foreach ($item in $BloatedObject.entry) {
    [PSCustomObject]@{
        Title = $item.Title
        Link  = "https://www.youtube.com/watch?v=$($item.VideoID)"
    }
}

关键说明

  1. $BloatedObject.entry是RSS Feed中存储单个视频数据的节点(Invoke-RestMethod解析XML后,每个视频对应一个entry子对象)
  2. 循环遍历每个entry,提取单条视频的Title和VideoID
  3. 直接拼接字符串生成完整链接,比-replace语法更简洁高效

验证输出效果

执行代码后,$SmallObject会输出扁平化的对象集合,格式如下:

Title                                                                                               Link
-----                                                                                               ----
Fast Game World Prototyping | Thomas Tobin | EPC 2023                                               https://www.youtube.com/watch?v=Duhdhc1JEwo
KineFX: Animating Environments and Props | Mihnea Stoica | EPC 2023                                 https://www.youtube.com/watch?v=T8al2Uxsq70
Massive Worlds – Crafting World Partition Landscapes using Houdini | Erwin Heyms | EPC 2023         https://www.youtube.com/watch?v=baM-3JWcPJE
...

内容的提问来源于stack exchange,提问作者Ralf_Reddings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:12:36