XML解析 - 如何获取节点名称值

时间:2014-04-05 18:26:08

标签: android xml-parsing

我有以下格式的XML文件,

<zodiaco signo="Aries">
<prediccion tipo="texto">
Hoy te dispersas un poco...Solo tienes que concentrarte en tus problemas para poder solucionarlo. ¡No dejes que nada te desconcentre!
</prediccion>
<prediccion tipo="amor">2</prediccion>
<prediccion tipo="salud">5</prediccion>
<prediccion tipo="trabajo">2</prediccion>
<prediccion tipo="dinero">2</prediccion>
<prediccion tipo="numero_suerte">32</prediccion>
<prediccion tipo="pclave"/>
</zodiaco>

我想获得zodiaco节点的“signo”值。请帮帮我。

1 个答案:

答案 0 :(得分:0)

private void parsePrediction(int ResId){
    try {
        XmlPullParserFactory  factory = XmlPullParserFactory.newInstance();
        XmlPullParser parser = factory.newPullParser(); 
        parser.setInput(getResources().openRawResource(ResId), null);

        int parserEvent=parser.getEventType();
        String signo;
        while(parserEvent !=XmlPullParser.END_DOCUMENT) {
            switch (parserEvent) {
            case XmlPullParser.START_TAG:
                String tag = parser.getName();
                if (tag.compareTo("zodiaco") == 0) {
                    signo = (parser.getAttributeValue(null,"signo"));                   
                }
                break;
            }
            parserEvent=parser.next();  
        }

        }

        catch(Exception e) {
            e.printStackTrace();
        }
}

在ResId中,您输入了xml文件的资源ID。您可以通过以下方式获取ID:

int id = context.getResources().getIdentifier("the name of your file", "the dir where the file is", context.getPackageName());

希望它有效!