原生Javascript解析HTML(非DOM操作)

一个小题目,用javascript解析HTML字符串。

具体要求如下:

1. 以深度优先的方式解析字符串,生成一个描述DOM元素的数组。

2. 数组中每个元素应该或者可能包括以下属性:

  • Tag type
  • ID
  • Class
  • 自定义属性
  • 内容

3. 忽略style


设定:

1. 所有tag默认闭合  //这个地方我不确定是所有tag都有结束标签,还是说也包括这种。这里我是按前一种情况算的。

2. 在浏览器之外运行,也就是不能用js自带的DOM Parser。必须解析字符串。


举例:

输入:

"
  • Hello
  • World
Click "

输出:

[{ type: 'div'},{type: 'ul',id: 'myList'},{type: 'li',class: 'hello',content: Hello},{type: 'li',customTag: 'Earth',content: World},{type: 'a',href: 'http://www.csdn.com',content: 'Click'}
]

思路:

1. 识别开始标签、结束标签和属性要用正则表达式匹配。

2. 标签内部的内容容易解析,两个标签之间的内容也就是content,要特别的注意。内容出现的位置可能有四种情况:

开始标签、结束标签之间

开始标签、开始标签之间

结束标签、开始标签之间

结束标签、结束标签之间


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部