[XPath] structure récursive
Bonjour
Je suis un débutant en Xpath. J'essaye depuis d'extraire un partie d'un fichier XML à l'aide de XPath, mais je n'arrive pas au résultat souhaité.
Voici un peu à quoi ressemble le contenu de mon fichier XML:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<niveau1>
<niveau1>
<u1>
<ustext>Mon Titre 1</ustext>
</u1>
<rz>39</rz>
<para>MonParagraphe 1</para>
<rz>40</rz>
<para>MonParagraphe 2</para>
<rz>41</rz>
<para> MonParagraphe 3</para>
</niveau1>
<niveau1>
<u1>
<ustext>Mon Titre 2</ustext>
</u1>
<rz>39</rz>
<para>MonParagraphe 4</para>
<rz>40</rz>
<para>MonParagraphe 5</para>
<rz>41</rz>
<para>MonParagraphe 6</para>
</niveau1>
</niveau1> |
Je voudrais extraire rien que les parties comprises entre les <niveau1> pour obtenir un truc de ce genre:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<u1>
<ustext>Mon Titre 1</ustext>
</u1>
<rz>39</rz>
<para>MonParagraphe 1</para>
<rz>40</rz>
<para>MonParagraphe 2</para>
<rz>41</rz>
<para> MonParagraphe 3</para>
<u1>
<ustext>Mon Titre 2</ustext>
</u1>
<rz>39</rz>
<para>MonParagraphe 4</para>
<rz>40</rz>
<para>MonParagraphe 5</para>
<rz>41</rz>
<para>MonParagraphe 6</para> |
Voici à quoi ressemble mon code Xpath:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*">
<xsl:copy />
</xsl:template>
<xsl:template match="*">
<xsl:element name="{name()}" >
<xsl:apply-templates select="* | text() | @*"/>
</xsl:element>
</xsl:template>
<xsl:template match="niveau1">
<xsl:copy-of select="./*"/>
<xsl:copy-of select="/niveau1/following::*"/>
</xsl:template>
</xsl:stylesheet> |
Quelqu'un pourrait-il me donner une orientation?
Merci d'avance:D