Общим решением по-прежнему будет XSLT, но вам нужно сначала объединить два файла в один большой XML с элементом-оберткой (XSLT работает с одним входным источником).
<root>
<TestCaseBlock>
<TestCase TestCaseID="1">
...
</TestCase>
</TestCaseBlock>
<TestCaseBlock>
<TestCase TestCaseID="2">
...
</TestCase>
</TestCaseBlock>
</root>
Затем просто выполните XSLT для match = "// TestCase" и выгрузите все тестовые наборы, игнорируя, к какому блоку тестовых блоков они принадлежат.
И не беспокойтесь опроизводительность, пока вы не попробовали.XML API в JAva становятся намного лучше, чем в 2003 году.
Это таблица стилей, которая вам нужна:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<TestCaseBlock>
<xsl:apply-templates/>
</TestCaseBlock>
</xsl:template>
<xsl:template match="//TestCase">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
Протестировано, работает.
Кстати, этот XSLT был скомпилировани выполнено на этом (маленьком) примере за 1мс.