您好我有平面文本文件,其数据形式如下
<PersonName> Ian </PersonName> <OrgName> Cum Sociis Natoque Limited</OrgName>
<PersonName> Camilla </PersonName> <OrgName> Lorem Corporation </OrgName>
<PersonName> Addison </PersonName> <OrgName> Tempus Corp. </OrgName>
<PersonName> Arsenio </PersonName> <OrgName> Id LLP </OrgName>
我希望最终结果如下:
Ian: PersonName
Cum Sociis Natoque Limited: OrgName
Camilla: PersonName
.... so on
有没有人有任何见解
答案 0 :(得分:0)
假设您的文件真的是纯文本文件而不是XML
文件,您可以使用正则表达式来提取{之间的文本内容{1}}代码,如下:
XML
<强>输出:强>
Pattern pattern = Pattern.compile("<([^>]+)>([^<]*)</[^>]+>");
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
System.out.printf("%s: %s ", matcher.group(2).trim(), matcher.group(1));
}
System.out.println();
}
}
在 java 8 中,它将是:
<PersonName> Ian </PersonName> <OrgName> Cum Sociis Natoque Limited</OrgName>
Ian: PersonName Cum Sociis Natoque Limited: OrgName
<PersonName> Camilla </PersonName> <OrgName> Lorem Corporation </OrgName>
Camilla: PersonName Lorem Corporation: OrgName
<PersonName> Addison </PersonName> <OrgName> Tempus Corp. </OrgName>
Addison: PersonName Tempus Corp.: OrgName
<PersonName> Arsenio </PersonName> <OrgName> Id LLP </OrgName>
Arsenio: PersonName Id LLP: OrgName
答案 1 :(得分:0)
在每一行上使用拆分:
String[] parts = line.replaceAll("^.*?>", "").split("<.*?>");
这将是一个大小为2的数组,包含你想要的东西。