使用java代码从文本文件中提取带注释的文本

时间:2014-05-14 05:40:17

标签: java annotations gate

我有以下格式注释的文本文件:

<paragraph><weakness>Buffer</weakness> <weakness>Overflow</weakness>
in <location>client/mysql.cc</location> in <application>Oracle</application> 
<application>MySQL</application> and <application>MariaDB</application> 
<version>before</version> <version>5.2</version> <vulnerability>allows
</vulnerability> <vulnerability>remote</vulnerability> 
<application>database</application> <application>servers</application> 
...
...

我想要做的是创建一个Java代码来解析上面的文本文件并将其放在以下格式中:

Buffer  weakness
overflow  weakness
in   O <--- 'O' means doesn't have annotation
Oracle  application
MySQL   application
...
...

我试图对文件进行标记,但问题是,我会再次进行解析和格式化,我可能会丢失一些有用的信息!!

请任何帮助!!

2 个答案:

答案 0 :(得分:1)

您可以使用一些可以解析xml的XML解析器:例如:dom4jXOM

如果您知道要查找的元素的XPATH,也可以使用JDK 1.5及更高版本中提供的Java Xpath Library从XML中提取内容。例如:为了提取所有弱点,您可以使用以下XPATH:/paragraph/weakness

选择最适合您目的的图书馆。

答案 1 :(得分:0)

将文本按空格拆分为String数组,然后对于数组中的每个字符串,请查看&#34;&lt;&#34;如果找到符号,则用Xpath解析它,否则根据需要写出值0和。

...
String split[] = readLine.split("\\s");
for (String string : split) {
  if (string.indexOf("<") != -1) {
    //XPath parsing
  } else {
    System.out.println(string + " O");
  }
}
...