我正在尝试编写一个正则表达式来匹配一个 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 字符串,则此方法可以正常工作。但是当您有一个格式不正确的 xml 后跟格式正确的 xml 时,这不起作用。
<company>
<Employees>
</Employees>
<company>
.....
<Employees>
.......
</Employees>
</company>
在这种情况下,它返回整个字符串而不是格式良好的 xml。
请帮忙谢谢!!