我有這樣的XML文檔:XSL消除元素
<tags>
<w lemme="déclaration" pos="NOM">Déclaration</w>
<w lemme="du" pos="PRP:det">des</w>
<w lemme="droit" pos="NOM">droits</w>
<w lemme="de" pos="PRP">de</w>
<w lemme="le" pos="DET:ART">l'</w>
<w lemme="homme" pos="NOM">homme</w>
<w lemme="et" pos="KON">et</w>
<w lemme="," pos="PUN">,</w>
...
</tags>
我試圖使用XSL過濾掉的文章和標點符號。像這裏< w lemme =「,」pos =「PUN」>,</w>和< w lemme =「de」pos =「PRP」> de </w> < w lemme =「le」pos =「DET :ART「>'</w>。因此,我製作了以下樣式表,它將所有條件概括爲所有標籤,包括標籤<標籤>。
<xsl:template match="*">
<xsl:choose>
<xsl:when test="contains(@pos,'PUN')"></xsl:when>
<xsl:when test="contains(@pos,'PRP')"></xsl:when>
<xsl:when test="contains(@pos,'DET')"></xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:attribute name="lemme">
<xsl:value-of select="@lemme"/>
</xsl:attribute>
<xsl:attribute name="pos">
<xsl:value-of select="@pos"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
我有這樣的結果:
<tags lemme="" pos="">
<w lemme="déclaration" pos="NOM">Déclaration</w>
<w lemme="droit" pos="NOM">droits</w>
<w lemme="homme" pos="NOM">homme</w>
<w lemme="et" pos="KON">et</w>
<w lemme="citoyen" pos="NOM">citoyen</w>
所以它的工作原理,並顯示我的只有我感興趣的線路,只有我不希望它也加入還是讓我=「」 POS =「」在第一行的<標籤>標籤中。我應該在xsl中更改哪些內容才能使其僅使用< w>標記。我試過< xsl:template match =「w」>但它沒有生成有效的xml。請幫助?
您能重新格式化您的問題嗎?你的代碼塊不可讀... –
是的,我很抱歉,現在好多了我認爲 – user1964684