You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oxygen XML Editor生成HTML时将<dl>/<dt>/<dd>替换为<ul>/<li>的求助

问题原因

Oxygen XML Editor默认采用的HTML转换模板(比如针对DITA、DocBook这类标准XML格式的内置XSLT规则),会把索引内容映射为<dl>定义列表——因为索引的“术语+对应位置/内容”结构,和定义列表的<dt>(术语)+<dd>(定义/说明)语义匹配,这是行业常见的默认转换逻辑。

解决方案:自定义转换参数/修改XSLT模板

完全可以通过调整转换规则实现<ul>/<li>的输出,核心是修改控制索引生成的XSLT模板,步骤如下:

1. 定位目标XSLT文件

  • 如果是用DITA转换:找到Oxygen内置DITA-OT包中的索引相关XSLT(通常路径类似[Oxygen安装目录]/frameworks/dita/DITA-OT/plugins/org.dita.html5/xsl/topic/index.xsl)
  • 如果是自定义XML格式:找到你当前使用的HTML转换XSLT文件

2. 修改索引生成模板

找到匹配索引根节点(比如<index>)和索引项节点(比如<indexterm>)的模板,替换原有输出标签:

<!-- 替换原有索引根节点模板 -->
<xsl:template match="index">
  <ul class="index-list">
    <xsl:apply-templates select="indexterm"/>
  </ul>
</xsl:template>

<!-- 替换原有索引项模板 -->
<xsl:template match="indexterm">
  <li class="index-item">
    <!-- 输出索引术语 -->
    <span class="index-term"><xsl:value-of select="term"/></span>
    <!-- 输出索引对应的位置/内容 -->
    <span class="index-location"><xsl:value-of select="location"/></span>
    <!-- 处理嵌套子索引项 -->
    <xsl:if test="indexterm">
      <ul class="sub-index-list">
        <xsl:apply-templates select="indexterm"/>
      </ul>
    </xsl:if>
  </li>
</xsl:template>

3. 在Oxygen中配置自定义转换场景

  • 打开Oxygen的「Transformation Scenarios」面板
  • 复制你当前使用的默认HTML转换场景,命名为自定义场景(比如「HTML - 自定义索引列表」)
  • 在场景设置的「XSLT」标签页,指定修改后的XSLT文件路径;如果原模板支持参数控制标签类型,也可以直接添加参数(比如index.list.type=ul,具体参数名需看原模板文档)
  • 保存场景后,用它执行转换即可得到<ul>/<li>结构的索引

4. 验证输出

转换完成后,打开生成的HTML文件,检查索引部分是否已替换为<ul>和<li>标签。

内容的提问来源于stack exchange,提问作者Gaurav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 08:40:25