v/vlib/net/html
2024-06-01 11:29:09 +03:00
..
data_structures.v net.html: quick workaround for a cgen problem for const x = int(0x80000000) 2024-06-01 11:29:09 +03:00
dom.v vlib: refactor empty string checks to use s == '' or s != '', instead of s.len == 0 (#21300) 2024-04-18 02:44:31 +03:00
dom_test.v net.html: fix semantic inconsistencies of tag retrieving functions (#18558) 2023-06-27 20:10:31 +03:00
html.v net.html: fix doc comments for html.parse functions (#20109) 2023-12-07 18:22:15 +02:00
html_test.v tests: cleanup test cases (#19104) 2023-08-13 13:36:08 +03:00
parser.v vlib: refactor empty string checks to use s == '' or s != '', instead of s.len == 0 (#21300) 2024-04-18 02:44:31 +03:00
parser_test.v net.html: fix parsing of nested quoted strings in code tags (#18123) 2023-05-07 03:55:02 +03:00
README.md tests: cleanup test cases (#19104) 2023-08-13 13:36:08 +03:00
tag.v vlib: refactor empty string checks to use s == '' or s != '', instead of s.len == 0 (#21300) 2024-04-18 02:44:31 +03:00
tag_test.v all: unwrap const() blocks 2023-11-25 10:02:51 +03:00

net/html is an HTML Parser written in pure V.

Usage

import net.html

fn main() {
	doc := html.parse('<html><body><h1 class="title">Hello world!</h1></body></html>')
	tag := doc.get_tags(name: 'h1')[0] // <h1>Hello world!</h1>
	println(tag.name) // h1
	println(tag.content) // Hello world!
	println(tag.attributes) // {'class':'title'}
	println(tag.str()) // <h1 class="title">Hello world!</h1>
}

More examples found on parser_test.v and html_test.v