1
我正在處理基本上是字典的文件。我想要做的是僅選擇具有特定「域」的文章,並以不同的方式重新組織它們。 我的問題是,一切似乎工作正常,除了我得到了數以百計的文章一遍又一遍的相同的文章,我不知道爲什麼! 你能幫我解決這個謎團嗎?如何防止循環的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