Skip to content

Commit

Permalink
Extended HTMLParser by adding selector for prefixes, example: `node…
Browse files Browse the repository at this point in the history
….find('xsd:')`.
  • Loading branch information
petersirka committed Sep 9, 2024
1 parent cf5dfd6 commit 8b88565
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
- removed `@{url()}` method and added `@{url}` property
- added `@{hostname([url])}`
- added `controller.href()` method
- extended `HTMLParser` by adding selector for prefixes, example: `node.find('xsd:')`

========================
0.0.5
Expand Down
15 changes: 14 additions & 1 deletion htmlparser.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,12 @@ function parseRule(selector, output) {
}

selector = selector.trim();
rule.tagName = selector[0] === '*' ? '' : selector.toUpperCase();

if (selector[selector.length - 1] === ':') {
rule.prefix = selector.toUpperCase();
rule.tagName = '';
} else
rule.tagName = selector[0] === '*' ? '' : selector.toUpperCase();

return rule;
}
Expand Down Expand Up @@ -168,6 +173,9 @@ HTMLElement.prototype.find = function(selector, reverse) {
if (rule.tagName && rule.tagName !== node.tagName)
skip = true;

if (rule.prefix && rule.prefix !== node.prefix)
skip = true;

if (rule.attrs.length && !skip) {
for (var attr of rule.attrs) {
switch (attr.id) {
Expand Down Expand Up @@ -566,6 +574,11 @@ function parseHTML(html, trim, onerror, isxml) {
}

dom.tagName = tag.toUpperCase();
index = dom.tagName.indexOf(':');

if (index !== -1)
dom.prefix = dom.tagName.substring(0, index + 1);

dom.children = [];
dom.attrs = node ? parseAttrs(node) : {};
dom.raw = tag;
Expand Down

0 comments on commit 8b88565

Please sign in to comment.