diff --git a/src/dom/node.zig b/src/dom/node.zig index 904119e0..3d3ea43c 100644 --- a/src/dom/node.zig +++ b/src/dom/node.zig @@ -180,6 +180,11 @@ pub const Node = struct { return parser.nodeLookupPrefix(self, namespace); } + pub fn _lookupNamespaceURI(self: *parser.Node, prefix: ?[]const u8) ?[]const u8 { + // TODO: other is not an optional parameter, but can be null. + return parser.nodeLookupNamespaceURI(self, prefix); + } + pub fn _normalize(self: *parser.Node) void { return parser.nodeNormalize(self); } diff --git a/src/netsurf.zig b/src/netsurf.zig index 6bf5ea54..4cf6184b 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -398,6 +398,15 @@ pub fn nodeLookupPrefix(node: *Node, namespace: ?[]const u8) ?[]const u8 { return stringToData(s.?); } +pub fn nodeLookupNamespaceURI(node: *Node, prefix: ?[]const u8) ?[]const u8 { + var s: ?*String = undefined; + _ = nodeVtable(node).dom_node_lookup_namespace.?(node, stringFromData(prefix.?), &s); + if (s == null) { + return null; + } + return stringToData(s.?); +} + pub fn nodeNormalize(node: *Node) void { _ = nodeVtable(node).dom_node_normalize.?(node); }