Google一直是我的朋友,我在我正在处理的代码方面取得了一些进展。但我不是一个贸易程序员,所以我到目前为止,现在我被卡住了。
我有一个rss feed,我正在尝试解析并搜索关键字。一旦找到其中一个关键字,我希望它能够选择标题,链接和正文。理想情况下,易于阅读的段落格式。
$feed = [xml](New-Object System.Net.WebClient).DownloadString('http://www.bladeforums.com/forums/external.php?type=RSS2&forumids=746')
$results = $feed.rss.channel.Item | ? {$_.title -match "boker"} | ft title, link, description -auto
@($results)
这是我到目前为止所获得的代码。就像信息一样,描述字段不是我真正想要的。我真的想要编码字段,但它不能正确导出。它只是在完成时说“编码”。
我希望它做的另一件事。我希望它不仅可以搜索标题,还可以搜索相同内容的编码字段。如果它在任何一个地方找到关键字,那么它会提取信息。
今天它将如何输出:
title link description
----- ---- -----------
FS: CRKT Shrimp, Boker Microcom http://www.bladeforums.com/forums/showthread.php/915409-FS-CRKT-Shrimp-Boker-Microcom?goto=newpost 1st Class shipping is includ...
SOLD: Boker Subcom and Subcom Titan http://www.bladeforums.com/forums/showthread.php/915337-SOLD-Boker-Subcom-and-Subcom-Titan?goto=newpost description
我更愿意输出:
title
link
encoded
title
link
encoded
如果您需要更多信息,请告诉我。一旦我按照我想要的方式进行格式化,我计划在循环中将其作为计划任务运行,并在有匹配时随时给我发电子邮件。并保持历史,以便它不发送重复。但首先,我想首先获得基本输出。
修改
谢谢你们俩。我得到了它,正是我所要求的。当我将电子邮件发送到手机时,如果我包含cdata / encoded字段,则会占用太多空间。说明字段可能会在我的手机上更好地工作。然而它似乎很受欢迎。有时会填充描述字段,有时它将为空白。有任何想法吗?标题字段也是如此,有时它是空白的。
答案 0 :(得分:2)
编码属性中的数据包含在另一个名为“#cdata-section”的属性中,因此您也必须对其进行扩展。
要匹配这两个属性,只需在-or
运算符分隔的where条件中包含两个匹配项。你的情况如下:
?{ $_ -match "boker" -or $_.encoded."#cdata-section" -match "boker"}
最后,要输出为列表,请使用format-list命令行开关(别名fl),注意如何通过提供脚本块(括在大括号中)来扩展编码属性。所以你最终得到了这个:
$feed.rss.channel.Item | ?{ $_ -match "boker" -or $_.encoded."#cdata-section" -match "boker"} | fl title, link, {$_.encoded."#cdata-section"}
答案 1 :(得分:0)
使用Format-List代替Format-Table,例如:
$feed.rss.channel.Item | Where {$_.title -match "boker"} | Format-List title, link, description
或
$feed.rss.channel.Item | ? {$_.title -match "boker"} | fl title, link, description
哪个输出:
title : FS: CRKT Shrimp, Boker Microcom link : http://www.bladeforums.com/forums/showthread.php/915409-FS-CRKT-Shrimp-Boker-Microcom?goto=newpost description : 1st Class shipping is included, I take both PP personal and MO. 1. CRKT Shrimp Silver: NIB. Good lockup, only thing that has been done is the little steel ring has been removed (but I still have it). $*11* 2. Boker Microcom: Taken in and out of the sheath a few times, used a few times as... title : SOLD: Boker Subcom and Subcom Titan link : http://www.bladeforums.com/forums/showthread.php/915337-SOLD-Boker-Subcom-and-Subcom-Titan?goto=newpost description : description