如何使用下面的名称空间来解析命名含糊不清的属性?
<parent xmlns:android="http://schemas.android.com/apk/res/android">
<child></child>
<child></child>
</parent>
如何区分两个子节点?
因为子节点都继承父命名空间。
然后两者都必须具有以下名称http://schemas.android.com/apk/res/android:child
答案 0 :(得分:0)
在这种情况下,您为前缀android
定义名称空间,因此您实际上是正确的:您最终将使用格式为android:attribute
的属性的子节点。
但是,可以包含一些其他命名空间。例如,
<parent xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<child></child>
<child></child>
</parent>
在这种情况下,您还定义了app
命名空间,其中将包含应用程序中专门定义的属性(例如,通过库,或通过您定义的自定义视图)。因此,对于未包含在android:attribute
命名空间中的属性,您最终将使用app:attribute
语法和android
语法。
android中的命名空间不用于分隔子节点本身,而是用于定义这些子节点可以访问的属性范围。