问题改写
我将如何解析这种格式的文件并分别获取每个节点?
<12-08-1992>
<Name1><Info1><More1><><Moreagain1>
<Name2><Info2><><Morer2><Moreagain2>
....
我想打印除日期之外的所有信息
问题改写
我将如何解析这种格式的文件并分别获取每个节点?
<12-08-1992>
<Name1><Info1><More1><><Moreagain1>
<Name2><Info2><><Morer2><Moreagain2>
....
我想打印除日期之外的所有信息
这似乎不是有效的 xml(因为<>
零件)。您可能需要手动解析它。
这是一个匹配器,用于获取<>
括号内的所有元素。
public static final String EXAMPLE_TEST = "<12-08-1992>\n" +
"<Name1><Info1><More1><><Moreagain1>\n" +
"<Name2><Info2><><Morer2><Moreagain2>";
public static void main(String[] args) {
Pattern pattern = Pattern.compile("<[a-zA-Z0-9-]*>");
Matcher matcher = pattern.matcher(EXAMPLE_TEST);
while (matcher.find()) {
System.out.println(matcher.group());
/* optionnaly : remove <> characters and filter date
String output = matcher.group().replaceAll("[<>]","");
if(!output.isEmpty()) {
//And don't display dates
try {
new SimpleDateFormat("dd-MM-yyyy").parse(output);
} catch (ParseException e) {
//Display only if the result is not a date.
System.out.println(output);
}
}
*/
}
}
输出 :
<12-08-1992>
<Name1>
<Info1>
<More1>
<>
<Moreagain1>
<Name2>
<Info2>
<>
<Morer2>
<Moreagain2>
然后,您可以过滤不需要的元素并删除<>
字符。