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 回答