我有以下方法......
public void sendmessage( final String messageText)
{
}
并且参数messageText现在包含xml消息,我需要提取xml标记的值并将其发送到整数变量
在上面的字符串参数messageText中包含一条xml消息,这个标签如下所示
<transferGroupId>206320940</transferGroupId>
现在我要提取此标记的e值并在变量内部进行操作请告知如何实现此目的
下面是完整的xml消息,如下所示..
<?l version="1.0" encoding="UTF-8"?>
<emml message="emml-transfer-lifecycle">
<messageHeader>
<businessDate>2016-01-09</businessDate>
<eventDateTime timeContextReference="London">2016-01-09T16:55:00.485
</eventDateTime>
<system id="ACSDE">
<systemId>ADS ABLO</systemId>
<systemClass>ADS</systemClass>
<systemRole>Reference</systemRole>
</system>
<timeContext id="ndon">
<location>ABLO</location>
</timeContext>
</messageHeader>
<transferEventHeader>
<transferGroupStatus>Settled</transferGroupStatus>
<transferGroupIdentifier>
<transferGroupId>206320940</transferGroupId>
<systemReference>Ghtr</systemReference>
<transferGroupClassificationScheme>Primary Identifier
</transferGroupClassificationScheme>
</transferGroupIdentifier>
</transferEventHeader>
</emml>
我尝试过这种方法,如下所示
String tagname = "transferGroupId";
String t = getTagValue( messageText, tagname);
然后进一步调用此方法..
public static String getTagValue(String messageText, String tagname){
return messageText.split("<"+tagname+">")[1].split("</"+tagname+">")[0];
但是这最终不起作用请告诉我如何克服这个
另一个建议jsoup的事情我也尝试过,如下图所示,但它抛出了Parser类没有任何名为xmlParser的方法的例外。
Document doc = Jsoup.parse(messageText, "", Parser.xmlParser());
for (Element e : doc.select("transferGroupId")) {
System.out.println(e.text());
}
答案 0 :(得分:1)
JSoup 听起来像你需要的。 (它有xml解析支持)
在JSoup中:
Document doc = Jsoup.parse(messageText, "", Parser.xmlParser());
for (Element e : doc.select("transferGroupId")) {
System.out.println(e.text());
}
这将打印出transferGroupId的文本,在这种情况下为206320940
。您可以使用此方法执行其他操作,例如使用您自己的方法和资源发送消息。
希望这有帮助!