两个html之间传输数据,提取HTML文件中两个标签之间的数据

的大小为50 MB的文件是不是这么大,你不能只加载其内容直接进入MATLAB作为一个字符串,你可以用做功能FILEREAD: :

strContents = fileread('yourfile.html');

假设你有上面的文件格式,则可以再用REGEXP(使用named token capture)的功能解析内容

expr = 'name|prodId|color)>''([^<>]+)''\k>';

tokens = regexp(strContents,expr,'tokens');

tokens = vertcat(tokens{:});

和token使用示例文件内容,内容将是:

tokens =

'name' 'hat'

'prodId' '1829493'

'color' 'cyan'

'name' 'shirt'

'prodId' '193'

'name' 'dress'

'prodId' '18'

'color' 'dark purple'

然后,您可能要分析所生成的n乘2单元阵列,并放置在一个structure array内容与领域'name', 'prodId'和'color'。难点在于不是每个条目都有三个字段。假设每个'name'会后跟一个'prodId',一个'color',或都(顺序'prodId'然后'color'),然后将下面的代码应该为你工作:

s = struct('name',[],'prodId',[],'color',[]); %# Initialize structure

nTokens = size(tokens,1); %# Get number of tokens

nameIndex = find(strcmp(tokens(:,1),'name')); %# Find indices of 'name'

[s(1:numel(nameIndex)).name] = deal(tokens{nameIndex,2}); %# Fill 'name' field

%# Find and fill 'prodId' that follows a 'name':

index = strcmp(tokens(min(nameIndex+1,nTokens),1),'prodId');

[s(index).prodId] = deal(tokens{nameIndex(index)+1,2});

%# Find and fill 'color' that follows a 'name':

index = strcmp(tokens(min(nameIndex+1,nTokens),1),'color');

[s(index).color] = deal(tokens{nameIndex(index)+1,2});

%# Find and fill 'color' that follows a 'prodId':

index = strcmp(tokens(min(nameIndex+2,nTokens),1),'color');

[s(index).color] = deal(tokens{min(nameIndex(index)+2,nTokens),2});

和s内容使用您的示例文件内容将是:

>> s(1)

name: 'hat'

prodId: '1829493'

color: 'cyan'

>> s(2)

name: 'shirt'

prodId: '193'

color: []

>> s(3)

name: 'dress'

prodId: '18'

color: 'dark purple'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值