XML ドキュメントに一致する正規表現を作成しようとしています。xml パーサーをすぐに使用しない理由は、ファイルに複数の xml ファイル (整形式かどうかにかかわらず) が含まれている可能性があるためです。
xml 構造:
<company>
.....
<Employees>
.......
</Employees>
</company>
コード
final String xmlString = "...";
final List<String> data = new ArrayList<String>();
try
{
final Pattern pattern = Pattern.compile("<company>(.+?)</company>", Pattern.DOTALL);
final Matcher matcher = pattern.matcher(xmlString);
while (matcher.find())
{
final Pattern pattern1 = Pattern.compile("<Employees>(.+?)</Employees>", Pattern.DOTALL);// "+?"
final Matcher matcher1 = pattern1.matcher(matcher.group(1));
if (matcher1.find())
{
data.add(matcher1.group(1));
}
}
}
catch (final Exception e)
{
}
これは、xml 文字列に整形式または整形式でない xml 文字列が 1 つ含まれている場合に正常に機能します。ただし、整形式の xml の後に整形式の xml が続く場合、これは機能しません。
<company>
<Employees>
</Employees>
<company>
.....
<Employees>
.......
</Employees>
</company>
このシナリオでは、整形式の xml よりも文字列全体を返します。
助けてくださいありがとう!!