android中的xml字符串解析

时间:2015-09-30 13:29:38

标签: android xml parsing

我是android中的新xml解析。以下是我的xml字符串。我从onActivityResult方法获取这个XML字符串数据。所以下面的数据保存在一个字符串变量中,如resultText;我想从下面的字符串中读取每个属性值。

WHILE

我想读取该单个节点的每个属性。提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用XMLParser(检查this page),效果很好的是XmlPullParser

您可以使用以下命令初始化解析器:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();

xpp.setInput( new StringReader ( "<foo>Hello World!</foo>" ) );

您可以使用

迭代完整的XML对象
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
    /*YOUR CODE HERE*/
    eventType = xpp.next();
}

您可以在哪里检查eventTypesSTART_DOCUMENTSTART_TAGEND_TAGTEXT
进入开始或结束标记后,您可以使用getName()获取标记的名称,TEXT事件类型可以使用getText(),您可以使用BEGIN_TAG 1}},函数getAttributeCount()getAttributeName(index)getAttributeValue()可以获取属于每个标记的所有属性。

根据您的具体情况

您可以使用以下内容:

String xmlString = YOURSTRING_HERE;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput( new StringReader ( xmlString ) );
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
    if(eventType == XmlPullParser.START_DOCUMENT) {
        System.out.println("Start document");
    } else if(eventType == XmlPullParser.START_TAG) {
        System.out.println("Start tag "+xpp.getName());
        if (xpp.getName().equals("PrintLetterBarcodeData")){
            for (int i=0; i<xpp.getAttributeCount(); i++){
                 System.out.println("attribute:"+xpp.getAttributeName(i)+" with value: "+xpp.getAttributeValue(i))
                 //Store here your values in the variables of your choice.
            }
        }
    } else if(eventType == XmlPullParser.END_TAG) {
        System.out.println("End tag "+xpp.getName());
    } else if(eventType == XmlPullParser.TEXT) {
        System.out.println("Text "+xpp.getText());
    }
    eventType = xpp.next();
}
System.out.println("End document");