『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1734|回复: 5

[技术探讨] 【已解决】请问各位大佬,nr咋过滤xml的数据

[复制链接]

47

主题

1659

帖子

6700

积分

论坛元老

Rank: 8Rank: 8

积分
6700
金钱
5031
HASS币
40
发表于 2022-12-1 21:57:51 | 显示全部楼层 |阅读模式
本帖最后由 jjcs 于 2023-1-13 12:42 编辑

20221201215554.png


咋提取箭头的数据
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

43

主题

412

帖子

3808

积分

元老级技术达人

积分
3808
金钱
3391
HASS币
136
发表于 2022-12-1 22:47:00 | 显示全部楼层
利用: var num=str.indexOf('lindid:');  找到字符串位置
利用 :var vol=str.substring(num+8,5);  自己调试一下,利用这个函数,取出想要的值

函数: indexOf 定位 ,substring 提取

评分

参与人数 1金钱 +8 收起 理由
sorrypqa + 8 大神666!

查看全部评分

回复

使用道具 举报

40

主题

2176

帖子

8294

积分

元老级技术达人

积分
8294
金钱
6103
HASS币
110
发表于 2022-12-2 09:05:09 | 显示全部楼层
hunterfox 发表于 2022-12-1 22:47
利用: var num=str.indexOf('lindid:');  找到字符串位置
利用 :var vol=str.substring(num+8,5);  自己 ...

这个方式,假如lineid返回的有时候长度是5,有时候是6怎么办
当然也可以找到<car>字符串的位置再往前移位
但是如果payload里有多个<car>字段呢?我之前遇到问题 到这里就想不通该怎么办了
回复

使用道具 举报

43

主题

412

帖子

3808

积分

元老级技术达人

积分
3808
金钱
3391
HASS币
136
发表于 2022-12-2 09:45:07 | 显示全部楼层
本帖最后由 hunterfox 于 2022-12-2 09:47 编辑
ghostist 发表于 2022-12-2 09:05
这个方式,假如lineid返回的有时候长度是5,有时候是6怎么办
当然也可以找到字符串的位置再往前移位
但是 ...

他的这返回数据,一看就是比较固定的。  特点场景下使用一般问题不大,“当然也可以找到<car>字符串的位置再往前移位”,长度不定时这样保险,多个CAR,可以从找到的lineid位置,向后找第一个出现的CAR,总能解解决掉
回复

使用道具 举报

40

主题

2176

帖子

8294

积分

元老级技术达人

积分
8294
金钱
6103
HASS币
110
发表于 2022-12-2 10:00:18 | 显示全部楼层
hunterfox 发表于 2022-12-2 09:45
他的这返回数据,一看就是比较固定的。  特点场景下使用一般问题不大,“当然也可以找到字符串的位置再往 ...

我那个公交的返回
里面都是<span>这样的tag
<span>的数量还不固定,没办法我只能强制取前3个,没有的话就说没有,多的我也只能取前3
回复

使用道具 举报

18

主题

587

帖子

4293

积分

元老级技术达人

积分
4293
金钱
3671
HASS币
182
发表于 2022-12-2 10:47:05 | 显示全部楼层
方法一:百度搜下js xml解析
方法二:直接使用node-red自带的xml模块
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-28 14:53 , Processed in 0.369708 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表