У меня есть следующий XML:
<dev>
<niv1>
<int>blablabla</int>
<auteur>blablabla</auteur>
<exer>
<p align="justif">blablabla</p>
</exer>
</niv1>
<sign>M. A.</sign>
<p align="justif">
<pc>blablabla</pc>: blablabla2
</p>
<niv1>
<int>blablabla</int>
<auteur>blablabla</auteur>
<exer>
<p align="justif">blablabla</p>
</exer>
</niv1>
<sign>M. A.</sign>
<p align="justif">
<pc>blablabla</pc>: blablabla2
</p>
<!--Same pattern over and over again-->
</dev>
Я бы хотел что-то вроде
<article>
<content>
<div>
<some tags>xxxx</some tags>
</div>
<span class="sign">xxx</span>
<p class="ref">
<p class="mini-caps">xxxx</p>:
</p>
</content>
</article>
Вывод xml, который у меня есть на данный момент, выглядит следующим образом:
<article>
<content>
<div>
<some tags>xxxx</some tags>
</div>
</content>
</article>
<span class="sign">xxx</span>
<p class="ref">
<p class="mini-caps">xxxx</p>:
</p>
Мне не удается поместить последние элементы span
и p
в тег content
.
Мой XSLT выглядит примерно так (не весь файл здесь):
<xsl:template match="niv1">
<article>
<content>
<div>
<xsl:apply-templates mode="content"/>
</div>
<xsl:apply-templates select="sign"/>
</content>
</article>
</xsl:template>
<xsl:template match="sign">
<span class="sign">
<xsl:apply-templates/>
</span>
</xsl:template>
<xsl:template match="p">
<p class="ref">
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="pc">
<p class="mini-caps">
<xsl:apply-templates/>
</p>
</xsl:template>
Я не знаю, возможно ли достичь того, что я хочу, так как при совпадении <niv1>
, <sign>
и <p>
не являются дочерними узлами niv1
. Я не часто использую XSLT, и я довольно новичок.