1

次の形式のテキスト ファイルに注釈を付けました。

<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
...
...

ファイルをトークン化しようとしましたが、問題は、解析とフォーマットを再度行うことで、有用な情報が失われる可能性があることです!!

助けてください!!

4

3 に答える 3

1

xml を解析できるいくつかの XML パーサーを使用できます: 例: dom4jXOM

また、探している要素の XPATH がわかっている場合は、JDK バージョン 1.5 以降で提供されているJava Xpath ライブラリを使用して XML からコンテンツを抽出することもできます。例: すべての弱点を抽出するには、次の XPATH を使用できます。/paragraph/weakness

目的に最も適したライブラリを選択してください。

于 2014-05-14T05:44:09.973 に答える
0

テキストをスペースで文字列配列に分割し、配列内の各文字列について、「<」記号が見つかった場合はそれを調べ、Xpath で解析し、必要に応じて値と 0 を書き出します。

...
String split[] = readLine.split("\\s");
for (String string : split) {
  if (string.indexOf("<") != -1) {
    //XPath parsing
  } else {
    System.out.println(string + " O");
  }
}
...
于 2014-05-14T06:23:10.807 に答える