【问题标题】:Parse RSS feed using split使用拆分解析 RSS 提要
【发布时间】:2012-11-09 13:41:52
【问题描述】:

大家好,我正在尝试解析以下 CDATA 描述:

 <description>
   <![CDATA[
     <p><b>Submission Date :</b> 2012-11-07 16:53:27<br/> <b>IP Address :</b> xx.xxx.xxx.xx<br/> <b>First Name :</b> dev<br/> <b>Email :</b> test3@here.com<br/> <b>18 yrs./Older :</b> YES<br/> <b>xxxxOffers :</b> <br/> </p>
   ]]>
</description>

读入时是这样的:

Submission Date : 2012-11-07 16:53:27
IP Address : xx.xx.xx.xx
First Name : dev
Email : test3@here.com
18 yrs./Older : YES
xxxxOffers : [space here]

目前我做以下事情:

description = description.Replace("<p>", "").Replace("</p>", "").Replace("<b>", "").Replace("</b>", "").Replace("<br/>", "")
Dim descriptionArray() As String = Split(description, " : ")

产生以下结果:

应该这样分解:

(0)Submission Date
(1)2012-11-07 16:53:27
(2)IP Address
(3)xx.xxx.xxx.xx
(4)First Name
(5)dev
(6)Email
(7)test3@here.com
(8)18 yrs./Older
(9)YES
(10)xxxxOffers
(11)[space here]

如果不使用分母为 ":" 的 SPLIT,我似乎无法找到将 CDATA 拆分为每个值的方法,这使得从那时起(16:53:27) 已经有 ":" 了。

所以我试图通过检查 " : " 来回避这一点,但仍然没有给我想要的结果。

【问题讨论】:

    标签: vb.net parsing rss split cdata


    【解决方案1】:

    我建议您在面向字典的对象中获取信息。因此,您将在一次调用中获得描述和价值。例如,您可以执行以下操作:

    Dim ht as new HashTable   
    ' by <br>, you will have  : <p><b>Submission Date :</b> 2012-11-07 16:53:27 as first line
    For each inLine as string in split(description,"<br/>")
        '<p><b>Submission Date : and 2012-11-07 16:53:27
        dim keyValue as string = split(inLine,"</b>")
        'then clean up <p>,<b>,.... remaining either by "<" and ">" or full tag
        'add(key,value)
        ht.add(keyValue(0), keyValue(1))
    Next
    

    如果出于任何原因您不想使用可枚举对象,您可以将其用作基线。

    【讨论】:

    • 工作得很好。谢谢,减号!
    猜你喜欢
    • 1970-01-01
    • 2017-10-28
    • 2012-11-08
    • 2012-06-12
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多