2016-02-11 2 views
1

У меня есть этот XML, который я хочу разобрать в android (android studio). Кто-нибудь, пожалуйста, помогите. AM действительно застрял здесь.Parse ISO8583 XML в android (с использованием студии android)

<?xml version="1.0" encoding="utf-8"?> 
<message> 
<isomsg direction="response"> 
<field id="0" value="ew8wqq"/> 
<field id="2" value="kdlaka"/> 
<field id="3" value="3388382"/> 
<field id="4" value="9302"/> 
<field id="7" value="02061212223721"/> 
<field id="11" value="9029221"/> 
<field id="12" value="38383"/> 
<field id="24" value="0920202"/> 
<field id="32" value="Texted"/> 
<field id="37" value="10031503992006830"/> 
<field id="41" value="93039292"/> 
<field id="49" value="uehee"/> 
<field id="56" value="938339939393"/> 
<field id="68" value="Test: 5001115750001"/> 
<field id="102" value="5001115750001"/> 
<field id="27" value="001"/> 
<field id="39" value="00"/> 
<field id="48" value="Successful"/> 
<field id="54" value="38288928383"/> 
<field id="58" value="73838383"/> 
</isomsg> 
</message> 

Я по-настоящему признателен. Большое спасибо

Ниже Вы найдете код, который я использую, чтобы получить ответ от веб-сервиса

SoapObject запрос = новый SoapObject («http://tempuri.org/», „PostRequest“); SoapSerialization Конверт конверт = новый SoapSerializationEnvelope (SoapEnvelope.VER11); envelope.dotNet = true; PropertyInfo pi = new PropertyInfo(); pi.setName ("IncomingXMLMessage");

  pi.setValue(GenerateXML()); 

      request.addProperty(pi); 
      envelope.setOutputSoapObject(request); 

      HttpTransportSE httpTransportSE = new HttpTransportSE("http://10.100.10.10:9000/IWalletService.asmx"); 
      SoapObject response = null; 
      httpTransportSE.debug=true;    

      httpTransportSE.call("http://tempuri.org/PostRequest", envelope); 

      response = (SoapObject)envelope.bodyIn; 

      int totalCount = response.getPropertyCount(); 
      String resultString=httpTransportSE.responseDump; 
      Log.d("XML data ", resultString); 

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

      String uResultString=resultString.replaceAll("&gt;", ">"); 

      String uResultStringFinal=uResultString.replaceAll("&lt;","<"); 

      parser.setInput(new StringReader(uResultStringFinal)); 

ответ

2

Для анализа ваших данных xml в Android вам, очевидно, потребуется использовать синтаксический анализатор для этого. Google предлагает XmlPullParser, который я сам нашел очень полезным. В Google также приведен пример кода here. Объяснение всего здесь будет просто дубликатом других ответов на этот точный вопрос. Если кода Google недостаточно, вы можете искать другие обучающие программы в Интернете!

+0

Я посмотрел на объяснения, данные и образцы, и я не могу показаться, чтобы связать. Я не могу понять. Crosswind, пожалуйста, помогите – Turbo

+0

получить этот XML из веб-сервиса и преобразовать его в строку. response = (SoapObject) envelope.bodyIn; int totalCount = response.getPropertyCount(); Строка resultString = httpTransportSE.responseDump; поэтому у меня возникла проблема с отправкой этого значения в этот метод private String readFields (парсер XmlPullParser), ...... который принимает только парсер. Как преобразовать эту строку xml в парсер? – Turbo

+0

Я честно не знаю, что вы там делаете. Обычно вы создаете свой парсер и т. Д., А затем вводите ввод в этот парсер, который либо берет Reader, либо InputStream. Может быть, мой пример поможет вам - https://github.com/Crosswind/Vertretungsplan/blob/master/app/src/main/java/de/gymnasium_beetzendorf/vertretungsplan/XMLParser.java Где именно вы получаете xml? Загруженный файл? – Crosswind

Смежные вопросы