Skip to content

missing ability to get all attributes including namespace #104

Open
@faassen

Description

@faassen

Consider this:

<foo xmlns:ns="http://example.com" bar="BAR" ns:bar="NS BAR" />

How can I find out that attributes bar and ns:bar both exist?

The Node API offers get_attributes which returns a HashMap with all attributes, but this loses namespace information and I only get bar once.

I can access individual attributes by namespace using get_attribute_ns, but I have no way to find out which attributes exist in the first place. I would expect something like get_attributes_ns which returns a vec of Node (of type AttributeNode, like what is returned by get_attribute_node) in order to find this out. Or alternatively a get_attribute_names_ns which gives a vec of attribute name, attribute namespace tuples.

Am I missing something or this is something the API doesn't implement yet?

Activity

dginev

dginev commented on Nov 29, 2022

@dginev
Member

Am I missing something or this is something the API doesn't implement yet?

I think the namespace support is lacking in the current wrapper, so this would need a new method, likely get_attributes_ns, as you suggest.

anwaralameddin

anwaralameddin commented on Feb 23, 2024

@anwaralameddin
Contributor

I needed the same and have implemented it with the signature

pub fn get_properties_ns(&self) -> HashMap<(Option<Namespace>, String), String>

For my use case, I have implemented PartialEq and Hash for Namespace using the methods get_prefix and get_href rather than ns_ptr.

Shall I create a pull request? Or do you have a different signature or implementation in mind?

dginev

dginev commented on Feb 23, 2024

@dginev
Member

@anwaralameddin your suggestion sounds reasonable to me. I'm happy to accept such a PR!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

      Participants

      @faassen@dginev@anwaralameddin

      Issue actions

        missing ability to get all attributes including namespace · Issue #104 · KWARC/rust-libxml