如何在使用 XmlPullParser 解析 XML 期间计算内部标记
How to count inner tags during parsing XML with XmlPullParser
我正在用 XmlPullParser
解析布局文件,我需要计算内部标签才能识别 children 视图。我找到了计算每个标签属性的方法,但找不到如何准确计算标签。
我有这样的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0d3fff"
android:text="New Button 1"
android:layout_marginRight="10dp"
android:id="@+id/btnDef1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnDef2"/>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tv1"/>
</LinearLayout>
有人知道如何计算标签 LinearLayout
的 children 吗?
提前致谢。
我不明白为什么有人会想要计算布局文件中的标签。如果您正在扩充布局,请使用 getChildCount 方法或使用以下代码获取 LinearLayout
的子项计数
int childcount = ll.getChildCount();
for (int i=0; i < childcount; i++){
View v = ll.getChildAt(i);
}
如果您倾向于使用 XMLPullparser,我认为没有任何直接的方法可以统计 xml 标签。您必须遍历每个标签
int count = 0;
XmlPullParser xpp = factory.newPullParser();
try {
xpp.setInput(new InputStreamReader(is));
int eventType = xpp.next();
Project p = null;
while(eventType != XmlPullParser.END_DOCUMENT) {
count++;
String tagName = xpp.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
// and other cases that you want to handle
}
}
} catch (Exception e) {
e.printStackTrace();
}
我正在用 XmlPullParser
解析布局文件,我需要计算内部标签才能识别 children 视图。我找到了计算每个标签属性的方法,但找不到如何准确计算标签。
我有这样的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#0d3fff"
android:text="New Button 1"
android:layout_marginRight="10dp"
android:id="@+id/btnDef1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnDef2"/>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tv1"/>
</LinearLayout>
有人知道如何计算标签 LinearLayout
的 children 吗?
提前致谢。
我不明白为什么有人会想要计算布局文件中的标签。如果您正在扩充布局,请使用 getChildCount 方法或使用以下代码获取 LinearLayout
的子项计数int childcount = ll.getChildCount();
for (int i=0; i < childcount; i++){
View v = ll.getChildAt(i);
}
如果您倾向于使用 XMLPullparser,我认为没有任何直接的方法可以统计 xml 标签。您必须遍历每个标签
int count = 0;
XmlPullParser xpp = factory.newPullParser();
try {
xpp.setInput(new InputStreamReader(is));
int eventType = xpp.next();
Project p = null;
while(eventType != XmlPullParser.END_DOCUMENT) {
count++;
String tagName = xpp.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
// and other cases that you want to handle
}
}
} catch (Exception e) {
e.printStackTrace();
}