NimPath
XPath API in Nim
Details
Status | |
Language | Nim |
---|---|
License | MIT |
Role | Maintainer |
API to allow for parsing HTML/XML and querying it using XPath expressions. Similar to lxml.html in Python.
Example code to query for anchors:
for node in parseTree(client.getContent(base_url), "//a", base_url): var anchor_text = node.textContent if anchor_text.isSome: echo anchor_text.get
Querying subnodes, and reading from a file:
var testFile = "./test.html".open(fmRead) var expr = "//*[self::h1 or self::div]" for node in parseTree(testFile.readAll, expr, "https://example.org"): for subnode in queryWithContext(node, "span"): # node is now the root to query from echo subnode.textContent.get if node.node.name == "h1": echo node.textContent.get
To install, simply add https://github.com/weskerfoot/NimPath >= 0.1.3 to your .nimble file, and make sure clang is installed, and add switch("passL", "/usr/lib/libxml2.so") to config.nims in your project (or pass the linker flag manually).