Я пытаюсь проанализировать некоторые Android XML с помощью XmlSlurper
.Для данного дочернего узла я хочу определить, был ли указан атрибут с определенным пространством имен.
Например, в следующем XML-коде я хотел бы знать, имел ли какой-либо узел EditText
какие-либообъявлены атрибуты из пространства имен 'b':
<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>
Я начинаю с вызова:
def rootNode = new XmlSlurper().parseText(text)
, чтобы получить указатель на корень GPathResult
.Когда я перебираю детей, мне дается экземпляр groovy.util.slurpersupport.NodeChild
.В этом классе я могу проверить атрибуты, вызвав attributes()
, а в случае EditText
выше, это вернет следующую карту: [layout_width: "fill_parent", layout_height: "wrap_content", enabled: "true"]
.
Это все хорошо.Тем не менее, кажется, нет способа запросить пространство имен данного атрибута.Я что-то здесь упускаю?