Я написал код Java, чтобы прочитать текстовый файл с несколькими xml сообщениями и отправить их в очередь EMS.
Мой входной файл выглядит следующим образом:
Product name is iPhone<product:iPhone>
<servicetag>55</servicetag>
</product>
Product name is Nokia<product:Nokia>
<servicetag> 54</servicetag></product>
Теперь мой код выглядит следующим образом:
File xml = new File( file location);
Reader fileReader = new FileReader(xml) ;
BufferedReader bufReader = new BufferedReader(fileReader) ;
StringBuilder sb = new StringBuilder() ;
String line = bufReader.readLine() ;
while(line! = null) {
sb.append(line).append("\n");
line=bufReader.readLine();
}
String xml2= sb.toString() ;
final Pattern pattern = Pattern.compile("product(.+?)/product", Pattern.DOTALL) ;
final Matched matcher = pattern.matcher(xml2) ;
while(matcher.find()) {
String matched pattern = matcher.group(0);
TextMessage message = context.createTextMessage(matched pattern) ;
producer= context.createProducer();
Producer.send(destination, message) ;
}
Но когда сообщение достигает очереди, оно не выглядит xml. Он получает «<» вместо <и «>» вместо>
Я знаю, что <означает <, но как я могу это исправить, поскольку сообщение не имеет смысла. </p>
Мой вывод должен быть похож на приведенное ниже сообщение в EMS
<product:iPhone>
<servicetag>55</servicetag>
</product>
Сообщение 2
<product:Nokia>
<servicetag> 54</servicetag></product>
Пожалуйста, дайте мне знать, если есть лучший способ сделать это.