あなたはこの記述することができます。
String[] tags = text.nextLine().split("(?:^|>)[^<]*(?:<|$)");
をが、それは本当のXMLパーサーを使用することはおそらく安全です。コメント<!-- ... -->
または処理指示<? ... ?>
またはその他のものがある場合、またはいずれかのタグに>
(たとえば、<span title='12 > 11'>
)が含まれている場合、またはその他のさまざまな場合に、上記は間違いになることに注意してください。正規表現はXMLを解析するための優れたツールではありません。
編集、追加し
:を空の最初の要素を持つ避けるために、あなたが最初のタグの前に、すべてを取り除くために前処理のビットを行う、それに応じてsplit
を調整することができます。
String[] tags = text.nextLine().replaceFirst("^[^<]*<?").split(">[^<]*(?:<|$)");
(注:text.nextLine()
にタグが一切含まれていない場合は、空の要素が1つだけの配列になります。それでも除外するには、上記の2番目のステップとして行うことができます:
if(tags.size == 1 && tags[0].isEmpty())
tags = new String[0];
この割り当てのポイントは、スタックを使用してファイルの有効性をチェックする独自のXMLパーサーを作成することです。上記の式はタグ[0]が常に ""であることを除いて機能します。最初の空の要素を取り除くための何かがありますか? – Steve
@スティーブ:私はそれに対処するために私の答えを更新しました。 – ruakh