我以下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的模板? –