如何从html2转换创建输出

时间:2017-03-13 12:44:46

标签: xml xslt dita-ot

是否可以使用名为org.dita4publishers.html2的插件从html2转换输出生成的输出中删除命名空间

我已经生成了从dita到html2输出的输出我得到了无花果

我从html2转换

获取输出
<div xmlns="http://www.w3.org/1999/xhtml" class="fignone" id="call1">
<div class="figbody">
<img xmlns="" src="images/imag1.png"></img>
</div>
<span class="figcap"><span class="enumeration fig-enumeration">Figure 1. </span>Nursing image</span></div>

但我想像这样排除名称空间

<div class="fignone" id="call1">
<div class="figbody">
<img xmlns="" src="images/imag1.png"></img>
</div>
<span class="figcap"><span class="enumeration fig-enumeration">Figure 1. </span>Nursing image</span></div>

我正在使用模板生成css链接

<xsl:template match="*" mode="chapterHead">
   <head><xsl:value-of select="$newline"/>
     <!-- initial meta information -->
   <link rel="stylesheet" type="text/css" href="css/care.css"/><xsl:value-of select="$newline"/>
   </head>
   <xsl:value-of select="$newline"/>
 </xsl:template>

但是生成输出就像这样

<head>
<link rel="stylesheet" type="text/css" href="care.css"></link>
</head>

忽略了/

之前忽略了文本

我希望输出为

<head>
<link rel="stylesheet" type="text/css" href="css/care.css"></link>
</head>

请就这些问题向我提出建议。

注意:我使用了exclude-result-prefixes =&#34;#all&#34;也。但它不起作用。

先谢谢

1 个答案:

答案 0 :(得分:0)

您已正确描述了该问题。就XDM数据模型而言,您不希望删除命名空间&#34;从输出中,您希望输出中的每个元素都与其当前所在的命名空间不同。(具体来说,您希望它不在命名空间中)。这会影响创建元素的每条指令。因此,实现此目的的最简单方法可能是通过当前输出的后处理传递,使用模板规则更改命名空间

<xsl:template match="*">
  <xsl:element name="{local-name()}">
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>