我以下document的工作文字()(使用<xsl:apply-templates select="*/*/dk:table[@xml:id='table_6-1']" />
)。我需要從任一提取text()
:快速從一個元素或子元素
<para>
<emphasis role="italic">(0008,0001)</emphasis>
</para>
或(簡單):
<para>(0008,0005)</para>
我想出什麼了(XSLT 1.0只能拜託)如下(完整的腳本here):
<xsl:variable name="vm">
<xsl:choose>
<xsl:when test="dk:td[1]/dk:para/dk:emphasis">
<xsl:value-of select="dk:td[1]/dk:para/dk:emphasis/text()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="dk:td[1]/dk:para/text()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
我覺得很醜陋,很麻煩,有沒有其他的(simplier)的方式?
是,'的 '是麻煩的,但至少可以縮短到'的 '。至於一般問題,目前還不清楚什麼決定了你想選擇哪個元素,你說/或者顯示兩個具有不同'xml:id'屬性的元素,這些是相關的嗎?輸入是否可以包含這兩種元素?你想要哪一個? –
我刪除了'xml:id',因爲我沒有在這個級別使用它們 – malat
爲什麼不直接用正常的方式編寫text()和dk:emphasis的模板? –