7

次のような xml ファイルを開く Java アプリケーションを作成しました。

<AnimalTree>
  <animal>
    <mammal>canine</mammal>
    <color>blue</color>
  </animal>
  <!-- ... -->
</AnimalTree>

そして、次を使用して開くことができます:

File fXmlFile = getResources.getXml("res/xml/data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList animalNodes = doc.getElementsByTagName("animal");

次に、単純にノードを作成し、オブジェクトを ListArray にプッシュし、ListArray をループ処理しながら、オブジェクトに対して必要な処理を実行します。

for (int temp = 0; temp < animalNodes.getLength(); temp++) {
Node nNode = animalNodes.item(temp);     
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
question thisAnimal = new animal();
thisAnimal.mammal = getTagValue("mammal",eElement);
// ...

簡潔でシンプル!今だけ、Android では、ファイル " " を単純に読み取ることはできres/xml/data.xmlません。これは私が迷っているところです。" " にファイルを開かせる方法はありますか、または or を使用しないと不可能ですか? (どれだけ頑張っても、どちらも本当に理解できません。) これらの方法を使用することを余儀なくされた場合、誰かが私の例に類似した簡単なコードを示すことができますか?File();StringintegerFile();SAXparserXPP

4

3 に答える 3

9

リソース ツリーにある場合は ID が割り当てられるため、openRawResource 関数を使用してストリームを開くことができます。

InputStream is = context.getResources().openRawResource(R.xml.data);

Android での XML の操作に関しては、ibm.com のこのリンクが非常に詳細です。

Listing 9. DOM-based implementation of feed parserそのリンクを参照してください。

入力ストリーム (上記) を取得したら、それを DocumentBuilder のインスタンスに渡すことができます。

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document dom = builder.parse(this.getInputStream());
Element root = dom.getDocumentElement();
NodeList items = root.getElementsByTagName("TheTagYouWant");

私が個人的にこれを行ったわけではないことに注意してください。IBM から提供されたコードが機能すると想定しています。

于 2010-12-01T21:34:36.230 に答える
-1

これを試して、

this.getResources().getString(R.xml.test); // returns you the path , in string,invoked on activity object
于 2014-02-27T13:56:25.070 に答える