账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何从html结构中提取标签
    39
    0

    问题描述

    例如有这么一段随机生成的html

    <div>
        sad啊萨达萨达12321213!@#$
        <span class="123asd" id="123">$$%^asdsad</span>
        asdsadq啊萨达萨达
        <p class="_ _aaa">
            asdas啊萨达萨达!@#!@#
            <span>阿三打撒123!@#@sadas</span>
        </p>
    </div>
    1、层级随机
    2、html中的标签随机
    3、标签的class与id随机,可能为空
    4、标签的内容随机,可能为空

    那么用什么方法可以把这段HTML中的所有标签提取出来,注意!只要标签,要过滤内容
    求助!

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 我在m城有车 普通会员 1楼

      在HTML结构中提取标签可以使用以下几种方法:

      1. 使用DOM API(Document Object Model):

      ```javascript const dom = document.documentElement;

      // 获取所有标签元素 const tags = dom.getElementsByTagName('*');

      // 遍历所有标签元素 for (let i = 0; i < tags.length; i++) { const tag = tags[i]; console.log(tag.tagName); } ```

      这种方法会返回一个包含所有标签元素的数组,每个元素的标签名都是<tag>标签的标签名。例如,如果HTML结构如下:

      ```html

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

      则上述代码将输出:

      ```

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

      1. 使用CSS选择器:

      ```javascript const dom = document.documentElement;

      // 使用CSS选择器获取所有类名为"my-class"的标签元素 const myClasses = dom.querySelectorAll('.my-class');

      // 遍历所有类名为"my-class"的标签元素 for (let i = 0; i < myClasses.length; i++) { const tag = myClasses[i]; console.log(tag.tagName); } ```

      这种方法会返回一个包含所有类名为"my-class"的标签元素的数组,每个元素的标签名都是<tag>标签的标签名。例如,如果HTML结构如下:

      ```html

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

      则上述代码将输出:

      ```

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

      1. 使用正则表达式:

      ```javascript const dom = document.documentElement;

      // 使用正则表达式匹配所有匹配".my-class"的标签元素 const myClasses = Array.from(dom.querySelectorAll('div.my-class'));

      // 遍历所有匹配".my-class"的标签元素 for (let i = 0; i < myClasses.length; i++) { const tag = myClasses[i]; console.log(tag.tagName); } ```

      这种方法会返回一个包含所有匹配".my-class"的标签元素的数组,每个元素的标签名都是<tag>标签的标签名。例如,如果HTML结构如下:

      ```html

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

      则上述代码将输出:

      ```

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

      1. 使用Node.js和DOMParser库:

      ```javascript const dom = new DOMParser(); const xmlDoc = dom.parseFromString(html, 'text/html');

      // 遍历所有标签元素 const tags = xmlDoc.getElementsByTagName('*');

      // 遍历所有标签元素 for (let i = 0; i < tags.length; i++) { const tag = tags[i]; console.log(tag.tagName); } ```

      这种方法需要安装dom-parser库,可以通过以下命令在Node.js中安装:

      bash npm install dom-parser

      然后,可以使用DOMParserparseFromString方法将HTML字符串解析为DOM对象,然后使用getElementsByTagName方法获取所有标签元素。例如,如果HTML结构如下:

      ```html

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

      则上述代码将输出:

      ```

      Heading 1

      Paragraph 1

      Heading 2

      Paragraph 2

      ```

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部