例如我有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元素中获取数据?
答案 0 :(得分:3)
我使用DOM2XmlPullBuilder将XmlPullParser转换为DOM,然后将DOM转换为字符串。代码看起来像这样。
DOM2XmlPullBuilder dom2XmlPullBuilder = new DOM2XmlPullBuilder();
Element element = dom2XmlPullBuilder.parseSubTree(xmlPullParser);
convertNodeToString(element); // implement using a Transformer
答案 1 :(得分: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/Resources/XML