最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Node-RED系列(六):Node-RED解析节点的使用

    正文概述 掘金(Fizz在掘金38275)   2021-02-19   906

    Node-RED系列(六):Node-RED解析节点的使用

    上一期我们讲到了Node-RED中序列节点的使用,利用序列节点我们可以对消息体进行拆分,合并,排序,本篇文章我再来给大家讲一下Node-RED中解析parser分类下的节点,该分类下有5个节点,

    • csv 在CSV格式的字符串及其JavaScript对象表示形式之间进行相互转换。
    • html 使用CSS选择器从msg.payload中保存的html文档中提取元素。
    • json 在JSON字符串及其JavaScript对象表示形式之间相互转换。
    • xml 在XML字符串及其JavaScript对象表示形式之间进行相互转换。
    • yaml 在YAML格式的字符串及其JavaScript对象表示形式之间相互转换。

    csv

    html

    要使用这个节点,我们可以搭配一个http的请求节点,使用http节点,去获取一个html的全部内容,然后使用html节点去进行解析 在解析的时候,首先要选择一个标签,比如你要获取一个html中的所有p标签,那么就可以这样配置,你可以将所有p标签内的文本内容存放到msg.payload中,当做一个数组来处理。 如图

    请求的html是这个,http://mczaiyun.top/data/1.html

    内容很简单

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <meta name="author" content="http://www.softwhy.com/" />
        <title>scrollWidth和scrollHeight属性-蚂蚁部落</title>
        <style type="text/css">
            * {
                margin: 0px;
                padding: 0px;
            }
    
            #box {
                width: 200px;
                height: 150px;
                border: 1px solid #ddd;
                margin: 0px auto;
                margin-top: 50px;
                /* overflow: scroll; */
                padding: 0px;
            }
    
            #box::before {
                content: url("data:image/svg+xml,%3Csvg t='1610605001506' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='9843' xmlns:xlink='http://www.w3.org/1999/xlink' width='16' height='16'%3E%3Cdefs%3E%3Cstyle type='text/css'%3E%3C/style%3E%3C/defs%3E%3Cpath d='M562.005333 512l-211.2-211.2 60.330667-60.330667L682.666667 512l-271.530667 271.530667-60.330667-60.330667z' p-id='9844' fill='%239DA1A7'%3E%3C/path%3E%3C/svg%3E");
            }
        </style>
    </head>
    
    <body>
        <div id="box">
            <p>段落1</p>
            <p>段落2</p>
            <p>段落3</p>
            <p>段落4</p>
            <p>段落5</p>
            <p>段落6</p>
        </div>
    
    </body>
    
    </html>
    

    我们使用这个节点,可以去定时监控一个页面的内容,比如有一个人发布了一篇文章,我们可以给某人发一封邮件。 也可以使用一些对外的信息,如微博,发布一条微博,来控制led灯的关闭,开启。这样的实战案例,需要我们来通过解析微博内容,来获取我们需要的内容。当然这里需要定制消息体,比如#开启#LED 或者#关闭#LED。解析相应的内容,进行不用的操作。

    以下是这条流的json数据,大家可以导入自己动手做一下。

    [
        {
            "id": "70d9360.22b68cc",
            "type": "tab",
            "label": "Flow 2",
            "disabled": false,
            "info": ""
        },
        {
            "id": "c063491c.2a1318",
            "type": "html",
            "z": "70d9360.22b68cc",
            "name": "get p",
            "property": "payload",
            "outproperty": "payload",
            "tag": "p",
            "ret": "text",
            "as": "single",
            "x": 650,
            "y": 260,
            "wires": [
                [
                    "f6760bc5.997d58"
                ]
            ]
        },
        {
            "id": "f6760bc5.997d58",
            "type": "debug",
            "z": "70d9360.22b68cc",
            "name": "",
            "active": true,
            "tosidebar": true,
            "console": false,
            "tostatus": false,
            "complete": "payload",
            "targetType": "msg",
            "statusVal": "",
            "statusType": "auto",
            "x": 900,
            "y": 260,
            "wires": []
        },
        {
            "id": "56422139.aff37",
            "type": "http request",
            "z": "70d9360.22b68cc",
            "name": "1.html",
            "method": "GET",
            "ret": "txt",
            "paytoqs": "body",
            "url": "http://mczaiyun.top/data/1.html",
            "tls": "",
            "persist": false,
            "proxy": "",
            "authType": "",
            "x": 370,
            "y": 260,
            "wires": [
                [
                    "c063491c.2a1318"
                ]
            ]
        },
        {
            "id": "27d30977.7bc8e6",
            "type": "inject",
            "z": "70d9360.22b68cc",
            "name": "",
            "props": [
                {
                    "p": "topic",
                    "vt": "str"
                }
            ],
            "repeat": "",
            "crontab": "",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "x": 170,
            "y": 260,
            "wires": [
                [
                    "56422139.aff37"
                ]
            ]
        }
    ]
    

    json

    json节点的使用与html差不多, 我们请求这个地址http://mczaiyun.top/data/wxdl.json来获取一个json数据,

    这个json的内容是

    如图

    是文心雕龙的文章

    使用debug节点来打印json节点处理后的信息如下

    xml

    yaml

    yaml 我们可以请求 这个地址的一个yaml文件 http://mczaiyun.top/data/pmc.yml


    起源地下载网 » Node-RED系列(六):Node-RED解析节点的使用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元