2

たとえば、私はxmlファイルを持っています:

 <names>
        <item value="Hello" />
        <item value="All" />
        <item value="This" />
        <item value="Data" />
 </names>

したがって、指定された属性 (名前) からすべての生データを取得する必要があります。

    <item value="Hello" />
    <item value="All" />
    <item value="This" />
    <item value="Data" />

文字列形式なので、データは次のようになります。

String data = "
<item value="Hello" />
<item value="All" />
<item value="This" />
<item value="Data" />
";

そして私はコードの平和を持っています:

 int state = 0;
    do {
        try {
            state = parser.next();
        } catch (XmlPullParserException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }       
        if (state == XmlPullParser.START_TAG) {
            if (parser.getName().equals("names")) {

// here I need to get the data
// String data = ...

               break;
            }
        }
    } while(state != XmlPullParser.END_DOCUMENT);

では、xml 要素から文字列形式でデータを取得するにはどうすればよいでしょうか。

4

2 に答える 2

3

DOM2XmlPullBuilderを使用して XmlPullParserを DOM に変換し、次に DOM を文字列に変換しました。コードは次のようになります。

DOM2XmlPullBuilder dom2XmlPullBuilder = new DOM2XmlPullBuilder();
Element element = dom2XmlPullBuilder.parseSubTree(xmlPullParser);
convertNodeToString(element); // implement using a Transformer
于 2013-03-27T19:49:41.850 に答える
1

あなたがいる場所の代わりに私は信じています

if (parser.getName().equals("names")) {...

次のようになります。

ArrayList<String> data=new ArrayList<String>();
....
....
if (parser.getName().equals("item")) {
   data.add(xpp.getAttributeValue(0));
}

私は初心者なので、最近この情報を検索していましたが、幸運にも commonsguy から役立つサンプルを見つけました (コピーして変更なしで正常に実行されました) - https://github.com/commonsguy/cw-android/tree/master /リソース/XML

于 2012-05-04T10:22:11.950 に答える