DOMの使用を開始したばかりで、Android XMLレイアウトファイル を解析したかった。 (唯一のEditTextののIDの上の)このようなDOMを使用してAndroid XMLレイアウトファイルを解析する
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="30dip">
<LinearLayout
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="center" >
<EditText android:id="@+id/entry1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"/>
<EditText android:id="@+id/entry2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"/>
<EditText android:id="@+id/entry3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"/>
</LinearLayout>
</LinearLayout>
とget出力:
ID: @+id/entry1
ID: @+id/entry2
ID: @+id/entry3
はこれを行う方法はありますか?誰かが私にチュートリアルを指摘したり、私にいくつかのアイデアを教えてもらえますか?
現在のコード:
final String ANDROID_ID = "android:id";
try {
File fXmlFile = new File("res/layout/page1.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Button");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
if (eElement.hasAttribute(ANDROID_ID))
System.out.println("ID: "
+ eElement.getAttribute(ANDROID_ID));
}
}
}
catch (Exception e) {
System.out.println("Catch");
e.printStackTrace();
}
ありがとう!
Android内または外部のレイアウトファイルを解析しますか?外部的には、どのプラットフォーム/言語/などを使用する方が好きですか?あなたの唯一のツールがVisual Basicの場合など、Javaソリューションを提供する意味はありません。 – Dalbergia
[XPath](http: //www.w3schools.com/xpath/default.asp)式。あなたのプラットフォームでXPathインタープリタが利用可能な場合(例:[Java](http://download.oracle.com/javase/1,5.0/docs/ api/javax/xml/xpath/package-summary.html))。 – JimmyB