Я работаю над файлом, который в основном является словарем. Я хочу, чтобы выбрать только статьи, которые имеют определенный «домен», и реорганизовать их по-другому. Моя проблема в том, что все работает нормально, за исключением того, что я снова и снова получаю сотни статей о тех же статьях, и я не знаю почему! Не могли бы вы помочь мне решить эту тайну?Как предотвратить преобразование xsl из цикла?
Вот мой XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes" encoding="UTF-8"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="article">
<xsl:for-each select="//label">
<xsl:if test="./@type ='domain'">
<xsl:element name="article">
<xsl:element name="domaine">
<xsl:value-of select="./@value"/>
</xsl:element>
<xsl:element name="div">
<xsl:element name="h2">
<xsl:value-of select="ancestor::article/title"/>
</xsl:element>
<xsl:for-each select="ancestor::pos/descendant::pron">
<xsl:element name="p">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
<xsl:for-each select="ancestor::pos//inflection">
<xsl:element name="p">
<xsl:text>Flexion : </xsl:text>
<xsl:value-of select="@form"/>
<xsl:text>; Prononciation : </xsl:text>
<xsl:value-of select="@prons"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
<xsl:element name="div">
<xsl:element name="p">
<xsl:text>Définition : </xsl:text>
<xsl:value-of select="ancestor::definition/gloss/txt"/>
<xsl:for-each select="ancestor::pos//example/txt">
<xsl:text>
Exemple : </xsl:text>
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
А вот что мой вклад в основном выглядит (его просто последовательность различных статей):
<?xml-stylesheet type="text/xsl" href="sajous.xslt"?>
<split>
<article>
<title>aiguchi</title>
<pageId>471440</pageId>
<meta>
<category>u prononcés /u/ en français</category>
<category>ch prononcés /tʃ/ en français</category>
</meta>
<text>
<etymology>
<etym>
<xml>du japonais <foreignWord lang="ja" translit="aïguchi">合口</foreignWord>.</xml>
<txt>du japonais 合口 aïguchi.</txt>
</etym>
</etymology>
<pos type="nom" lemma="1" locution="0" gender="m" number="s">
<pronunciations>
<pron>aj.gu.tʃi</pron>
</pronunciations>
<paradigm>
<inflection form="aiguchi" gracePOS="Ncms" prons="aj.gu.tʃi"/>
</paradigm>
<definitions>
<definition>
<gloss>
<xml>Monture pour une lame de <innerLink ref="tanto">tanto</innerLink> plus épurée que la monture standard buke-zukuri, où le couteau n'a pas de garde et où le <innerLink ref="sageo">sageo</innerLink> est inexistant dans la majorité des cas.</xml>
<txt>Monture pour une lame de tanto plus épurée que la monture standard buke-zukuri, où le couteau n'a pas de garde et où le sageo est inexistant dans la majorité des cas.</txt>
</gloss>
</definition>
<definition>
<gloss>
<labels>
<label type="sem" value="métonymie"/>
<label type="domain" value="armes blanches"/>
</labels>
<xml><innerLink ref="tanto#fr">Tanto</innerLink> monté en aïguchi.</xml>
<txt>Tanto monté en aïguchi.</txt>
</gloss>
</definition>
</definitions>
<subsection type="alternativeForm">
<item>aikuchi</item>
</subsection>
</pos>
</text>
</article>
</split>
Отлично, я знал, что мне не хватает чего-то очевидного, но не мог понять, что. Благодаря! – Azaghal