powershell解析cdata-section

时间:2011-11-29 03:53:15

标签: powershell rss cdata

我正在尝试使用powershell读取RSS提要,但我无法在提要中提取cdata部分

以下是Feed的片段(为了节省空间而剪切了一些项目):

<item rdf:about="http://philadelphia.craigslist.org/ctd/blahblah.html">
<title>
<![CDATA[2006 BMW 650I,BLACK/BLACK/SPORT/AUTO ]]>
</title>
...
<dc:title>
<![CDATA[2006 BMW 650I,BLACK/BLACK/SPORT/AUTO ]]>
</dc:title>
<dc:type>text</dc:type>
<dcterms:issued>2011-11-28T22:15:55-05:00</dcterms:issued>
</item>

Powershell脚本:

$rssFeed = [xml](New-Object System.Net.WebClient).DownloadString('http://philadelphia.craigslist.org/sss/index.rss')
foreach ($item in $rssFeed.rdf.item) { $item.title } 

产生这个:

#cdata-section
--------------
2006 BMW 650I,BLACK/BLACK/SPORT/AUTO 
2006 BMW 650I,BLACK/BLACK/SPORT/AUTO 

如何提取cdata-section?

我尝试了一些变体,例如$ item.title。“#cdata-section”和$ item.title.InnerText,它们什么都不返回。我试过$ item.title | gm,我看到#cdata-section列为属性。我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:5)

由于你有多个,title属性本身就是一个数组,所以以下内容应该有效:

$rss.item.title | select -expand "#cdata-section"

$rss.item.title[0]."#cdata-section"

根据您的需要而定。