Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7428153
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T08:41:57+00:00 2026-05-29T08:41:57+00:00

I’m trying to parse some Android XML using XmlSlurper . For a given child

  • 0

I’m trying to parse some Android XML using XmlSlurper. For a given child node, I want to detect whether or not an attribute with a particular namespace has been specified.

For example, in the following XML I would like to know whether the EditText node has had any attributes from the ‘b’ namespace declared:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:b="http://x.y.z.com">

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        b:enabled="true" />

</LinearLayout>

I start by calling:

 def rootNode = new XmlSlurper().parseText(text)

to get a handle on the root GPathResult. As I iterate through the children, I am given an instance of groovy.util.slurpersupport.NodeChild. On this class I can inspect the attributes by calling attributes() and in the case of EditText above, this will return the following map: [layout_width: "fill_parent", layout_height: "wrap_content", enabled: "true"].

This is all well and good. However, there doesn’t seem to be a way to query the namespace of a given attribute. Am I missing something here?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T08:41:57+00:00Added an answer on May 29, 2026 at 8:41 am

    You can use XmlParser rather than XmlSlurper and do this:

    def xml = '''<LinearLayout
                |    xmlns:android="http://schemas.android.com/apk/res/android"
                |    xmlns:b="http://x.y.z.com">
                |
                |  <EditText
                |      android:layout_width="fill_parent"
                |      android:layout_height="wrap_content"
                |      b:enabled="true" />
                |</LinearLayout>'''.stripMargin()
    
    def root = new XmlParser().parseText( xml )
    
    root.EditText*.attributes()*.each { k, v ->
      println "$k.localPart $k.prefix($k.namespaceURI) = $v"
    }
    

    Which prints out

    layout_width android(http://schemas.android.com/apk/res/android) = fill_parent
    layout_height android(http://schemas.android.com/apk/res/android) = wrap_content
    enabled b(http://x.y.z.com) = true
    

    Edit

    To use XmlSlurper, you first need to access the namespaceTagHints property from the root node using reflection:

    def rootNode = new XmlSlurper().parseText(xml)
    
    def xmlClass = rootNode.getClass()
    def gpathClass = xmlClass.getSuperclass()
    def namespaceTagHintsField = gpathClass.getDeclaredField("namespaceTagHints")
    namespaceTagHintsField.setAccessible(true)
    
    def namespaceDeclarations = namespaceTagHintsField.get(rootNode)
    

    namespaceTagHints is a property of GPathResult, which is a superclass of NodeChild.

    You can then cross-reference this map to access the namespace prefix and print out the same result as above:

    rootNode.EditText.nodeIterator().each { groovy.util.slurpersupport.Node n ->
      n.@attributeNamespaces.each { name, ns ->
        def prefix = namespaceDeclarations.find {key, value -> value == ns}.key
        println "$name $prefix($ns) = ${n.attributes()"$name"}"
      }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a French site that I want to parse, but am running into
We are using XSLT to translate a RIXML file to XML. Our RIXML contains
i want to parse a xhtml file and display in UITableView. what is the
I am trying to understand how to use SyndicationItem to display feed which is
Basically, what I'm trying to create is a page of div tags, each has
I'm new to using the Perl treebuilder module for HTML parsing and can't figure
link Im having trouble converting the html entites into html characters, (&# 8217;) i
That's pretty much it. I'm using Nokogiri to scrape a web page what has
I have just tried to save a simple *.rtf file with some websites and
I want to count how many characters a certain string has in PHP, but

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.