我需要编辑一个我们已经获得的转换,它将DITA XML更改为我们学习管理系统的略微不同的XML版本。这是我的问题:当我运行转换时,我在某些文件类型标题中丢失格式,即使它适用于其他文件类型标题。例如,当我创建一个摘要文件时,你可以直接通过,但在概念文件中,你会退出。我已经尝试了我能想到的一切,但没有骰子。问题似乎是对于概念,我可以从我的地图中提取一个navtitle,但我不能用其他类型(这是所有文件类型的要求,所以一旦修复了,我需要适用于所有事情)。
我将此代码列在“常用”部分中,该部分适用于摘要等类型:
<xsl:template match="*[contains(@class,' topic/title ')]" mode="new_tt_common">
<xsl:param name="prefix" select="''"/>
<title>
<xsl:value-of select="$prefix"/>
<xsl:apply-templates mode="identity" xml:space="default"/>
</title>
</xsl:template>
这准确地传递了标题中包含的任何元素。
此代码适用于概念:
<xsl:choose>
<xsl:when test="$navtitle = ''">
<xsl:apply-templates select="*[contains(@class,' topic/title ')]" mode="new_tt_common"/>
</xsl:when>
<xsl:otherwise>
<title>
<xsl:value-of select="$navtitle"/>
</title>
</xsl:otherwise>
</xsl:choose>
我相信,我之前在代码中正确定义了$ navtitle,因为它运行正常。这段代码有些不正确,这让我疯狂。基本上,如果没有navtitle,标题应该成为新文件中的标题。如果有一个navtitle,它应该成为新文件中的标题。
以下是我输入的一些示例。这是我的章节地图:
<topicref href="../topics/re_intro_1.dita" locktitle="yes" navtitle="Case Study: Reselling a Condo"/>
<topicref href="../topics/re_los_1.dita"/>
re_intro_1.dita中的标题:
<title><tm tmtype="reg">Introduction</tm> Testing</title>
re_los_1.dita中的标题:
<title>Learning <i>Objective</i></title>
在这个例子中,我希望第一个文件的标题是“案例研究:转售公寓,第二个文件是学习目标。目前,标题文本正常,但是我在Objective上失去了斜体。
任何人都有任何想法为什么标题中包含的元素没有通过?
答案 0 :(得分:1)
我建议你改变你的应用模板而不是值。这应该通过斜体进行进一步处理。