Как извлечь значение из указанной строки: java

У меня есть строка, как показано ниже:

и хотите извлечь значения:

transactionId;
paymentId;
amount;
dateTime;
mode;
referenceNo;
transactionType;
status;
isFlagged;

как это сделать в java?

На самом деле это ответ от сервера, который является третьим лицом и действительно не знает, как получить значения из ответа.

благодаря

4 ответа

Например, следующим кодом:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {
 public static void main(String[] args) {
 String input = "<output transactionid="\" 53264089\""="" paymentid="\" 21575285\""="" "="" +="" "amount="\" 52.78\""="" datetime="\" 2013-12-13"="" 15:04:42\"="" "mode="\" test\""="" referenceno="\" 80001186\""="" transactiontype="\" authorized\""="" "status="\" processed\""="" isflagged="\" no\"="">";

 Pattern pattern = Pattern.compile("\"([^\"]*)\"");
 Matcher matcher = pattern.matcher(input);

 while(matcher.find()) {
 System.out.println(matcher.group(1));
 } 
 }
}
</output>

это дает:

53264089
21575285
52.78
2013-12-13 15:04:42
TEST
80001186
Authorized
Processed
NO


Вы можете использовать Jsoup в качестве XML-парсера. Это очень просто:

  1. выбрать output элементы,
  2. выберите первый из основанных,
  3. получить свои атрибуты
  4. перебирать все атрибуты

Вот пример кода

String xml = "<output transactionid="\" 53264089\"\r\n""="" +="" "="" paymentid="\" 21575285\"\r\n""="" amount="\" 52.78\"\r\n""="" datetime="\" 2013-12-13"="" 15:04:42\"\r\n"="" mode="\" test\"\r\n""="" referenceno="\" 80001186\"\r\n""="" transactiontype="\" authorized\"\r\n""="" status="\" processed\"\r\n""="" isflagged="\" no\""="">";


Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
Attributes attr = doc.select("output").first().attributes();
for (Attribute a : attr)
 System.out.printf("%-15s -> %s%n", a.getKey(), a.getValue());
</output>

Вывод:

transactionid -> 53264089
paymentid -> 21575285
amount -> 52.78
datetime -> 2013-12-13 15:04:42
mode -> TEST
referenceno -> 80001186
transactiontype -> Authorized
status -> Processed
isflagged -> NO


Похож на узел XML для меня. Я думаю, что вы ищете, как читать XML-атрибуты в узле.

Это должно помочь вам.


String str ="<output transactionid="\" 53264089\""="" paymentid="\" 21575285\""="" amount="\" 52.78\""="" datetime="\" 2013-12-13"="" 15:04:42\"="" mode="\" test\""="" referenceno="\" 80001186\""="" transactiontype="\" authorized\""="" status="\" processed\""="" isflagged="\" no\""="">";
String[] values = str.split("\"");
for(int i=1;i</output>
<p> вывод:</p> <pre class="prettyprint linenums"> 53264089 21575285 52.78 2013-12-13 15:04:42 TEST 80001186 Authorized Processed NO </pre>

licensed under cc by-sa 3.0 with attribution.