Я пытаюсь получить выходные данные только тех узлов, которые имеют собственные дочерние узлы. Каждый узел проходит уровень 1, для каждого проверяется выражение, и если оно возвращает значение true, мы хотим скопировать все теги уровня 2, имеющие тег уровня 3. Проблема в том, что имена тегов "level2" неизвестны. Только имена узлов "level3" установлены (известны) и одинаковы для всех узлов level3. Ввод будет следующим:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<level1>
<level2>data</level2>
<level2>data</level2>
<level2>
data
<level3>data</level3>
</level2>
<level2>data</level2>
<level2>
data
<level3>data</level3>
</level2>
</level1>
<level1>
....
</level1>
</root>
Из которого мне понадобятся выходные данные:
<level2>
data
<level3>data</level3>
</level2>
<level2>
data
<level3>data</level3>
</level2>
Я попытался получить их с помощью:
<xsl:copy>
<xsl:copy-of select="descendant::level3" />
</xsl:copy>
но это вернет мне только теги "level3" и данные. Можно ли также вернуть родителя того уровня 3, не зная имени этого узла?