0

嘿,我正在尝试解析以下 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]

我似乎无法找到一种方法将 CDATA 拆分为每个值,而不使用分母为“:”的 SPLIT,这使得它从时间(16:53:27)有“:”在它已经。

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

4

1 回答 1

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

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

于 2012-11-09T14:03:55.867 回答