0

我有一个String

    String message1 = "Request: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.me.test.com">
    <soapenv:Header/>
    <soapenv:Body>
       <ws:RequestTypeOne>
          <userId>user_name_one</userId>
       </ws:RequestTypeOne>
    </soapenv:Body>
 </soapenv:Envelope>";

1)我需要能够提取起始词 - 它可以是RequestRepsonse,所以我可以存储在另一个中String

2)我需要能够提取标签之间的内容,并将其存储到另一个字符串中。

我已经使用Scanner()useDelimiter(),但我不确定如何实现这一点。我也尝试过 pattern() 和 matcher() 但我不确定这是否最适合此要求。

有人可以帮忙吗?

4

2 回答 2

0

我为您的请求使用了正则表达式和http://rubular.com 。

  1. /^(Request|Response)/只提取这个词
  2. /\W<(.*)>/提取< >. 警告:在结果列表中,< >不会包含 。
于 2013-01-08T14:58:37.717 回答
0

尝试

    String type =  message1.substring(0, message1.indexOf(':'));
    String userId = message1.substring(message1.indexOf("<userId>") + 8, message1.indexOf("</userId>"));
于 2013-01-08T14:54:28.677 回答