У меня есть XML-файл с множеством вложенных элементов темы. Например:Разделение элементов в XML на отдельные файлы
<?xml version="1.0" encoding="UTF-8"?>
<topic id="topic-1">
<title>ADBT</title>
<para>The program executes a database request by using the ADBT
library. The ADBT library prepares
the request and calls an ODBC driver
or a native API.
</para>
<topic id="topic_wom_eqy_ev">
<title>Establishing a connection</title>
<para>
In order to use a database with ADBT, the first step to be taken
is
to establish a
connection.
</para>
</topic>
<topic id="topic_dsw_gqy_ev">
<title>Querying a database</title>
<para>Querying a database involves a number of stages.</para>
<topic id="topic_ljf_isy_ev">
<title>Stage one: create a query</title>
<para> A new query (ADBT_Select object) can only be created starting
from a previously
established connection. A query is created using
the CreateSelect method in two
different
ways:
</para>
</topic>
</topic>
</topic>
Я хочу, чтобы каждый из тем, которые будут выделены в новый файл XML с именем файла таким же, как название. Если тема содержит другую тему, эта тема будет отдельным файлом, а родительская тема будет отдельным файлом с содержимым, исключающим дочерний раздел. К примеру, в этом случае будет четыре файла, как выход со следующим содержанием:
Номер 1:
<topic id="topic-1">
<title>ADBT</title>
<para>The program executes a database request by using the ADBT
library. The ADBT library prepares
the request and calls an ODBC driver or a native API.
</para>
</topic>
Номер 2:
<topic id="topic_wom_eqy_ev">
<title>Establishing a connection</title>
<para>
In order to use a database with ADBT, the first step to be taken is
to establish a
connection.
</para>
</topic>
Номер 3:
<topic id="topic_dsw_gqy_ev">
<title>Querying a database</title>
<para>Querying a database involves a number of stages.</para>
</topic>
Номер 4:
<topic id="topic_ljf_isy_ev">
<title>Stage one: create a query</title>
<para> A new query (ADBT_Select object) can only be created starting
from a previously
established connection. A query is created using the CreateSelect method in two
different
ways:
</para>
</topic>
Я написал несколько функций, но я не могу понять, как отделить многоуровневые вложенные темы.
вы используете процессор XSLT 2.0, как Saxon 9, так что вы можете использовать 'xsl: result-document' для записи нескольких файлов? –