0

ListXML から解析された 3 つの値で構成されています。私がやりたいことは、特定の値をリストの最初の値と比較し、最初の値に一致する他の2つの要素が返される値に応じて比較することです。

これは XML フラグメントです。

<?xml version="1.0"?>
 <TABLA Nom_Test="A_NUM_MED_01" Escala="APTITUD RAZ. CRITICO NUMÉRICO">
 <PUNTUACION>
  <VALOR>0</VALOR>
  <VALOR_TRANSFORMADO>1,2</VALOR_TRANSFORMADO>
  <VALOR_PS>14,4</VALOR_PS>
 </PUNTUACION>
 <PUNTUACION>
  <VALOR>1</VALOR>
  <VALOR_TRANSFORMADO>1,2</VALOR_TRANSFORMADO>
  <VALOR_PS>14,4</VALOR_PS>

たとえば、値が 1 の場合、他の 2 つの値 1,2 と 14,4 を返す必要があります。

私はこの構造を持っていて、これはうまくいきます:

 public XMLPullParserHandler() {
    puntuaciones = new ArrayList<Puntuacion>();
}

public List<Puntuacion> getPuntuacion() {
    return puntuaciones;
}

public List<Puntuacion> parse(InputStream is) {
    XmlPullParserFactory factory = null;
    XmlPullParser parser = null;
    try {
        factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        parser = factory.newPullParser();

        parser.setInput(is, null);

        int eventType = parser.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            String tagname = parser.getName();
            switch (eventType) {
            case XmlPullParser.START_TAG:
                if (tagname.equalsIgnoreCase("PUNTUACION")) {
                    // create a new instance of employee
                    puntuacion = new Puntuacion();
                }
                break;

            case XmlPullParser.TEXT:
                text = parser.getText();
                break;

            case XmlPullParser.END_TAG:
                if (tagname.equalsIgnoreCase("PUNTUACION")) {

                    puntuaciones.add(puntuacion);
                } else if (tagname.equalsIgnoreCase("VALOR")) {
                    puntuacion.setValor((text));
                } else if (tagname.equalsIgnoreCase("VALOR_TRANSFORMADO")) {
                    puntuacion.setValor_Transformado((text));
                } else if (tagname.equalsIgnoreCase("VALOR_PS")) {
                    puntuacion.setValor_PS((text));;

                }
                break;

            default:
                break;
            }
            eventType = parser.next();
        }

    } catch (XmlPullParserException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return puntuaciones;
}

}

これを比較するために、次の解決策を試しましたが、続行する方法がわかりません (編集済み) リストの位置 1 と 2 を取得する方法は?

public void Check() {
for (int i=0;i<=30;i++){
int index = puntuaciones.indexOf("1");
puntuaciones.get(index);

}

この最後の部分の助けをいただければ幸いです。

4

1 に答える 1

1
 List<Puntuacion> myList = getPuntuacion();    
 for (Puntuacion tmpPunt : myList) {
      if ( Verbal.getRespuesta() == VALOR)
            return tmpPunt;
 }

getRespuesta()オブジェクトを返す必要がStringあり、値を比較するには、クラスのメソッドStringを使用する必要がありますequalsString

于 2013-03-01T08:50:17.230 に答える