我如何更改 html 的 d:formalpara 渲染
how can i change the html rendering of d:formalpara
这是默认配置呈现形式参数的方式:
这个:
<formalpara>
<title>foo</title>
<para>bar</para>
</formalpara>
将呈现为:
<p>
<span class="formalpara-title">foo</span>
bar
</p>
我已经设置了 <xsl:param name="runinhead.default.title.end.punct"></xsl:param>
所以愚蠢的点不再被渲染。
这才是我真正想要的:
<div class="formalpara">
<h2 class="title">foo</h2>
<p>bar</p>
</div>
这是我目前所做的:
我改了:
<xsl:template match="d:formalpara">
<xsl:call-template name="paragraph">
.....
</xsl:template>
至:
<xsl:template match="d:formalpara">
<xsl:call-template name="block.object">
.....
</xsl:template>
我改变了:
<xsl:template match="d:formalpara/d:title|d:formalpara/d:info/d:title">
.....
<span class="formalpara-title">
.....
</span>
</xsl:template>
至:
<xsl:template match="d:formalpara/d:title|d:formalpara/d:info/d:title">
.....
<h2 class="title">
.....
</h2>
</xsl:template>
这是现在要呈现的内容:
<div class="formalpara">
<h2 xmlns:d="http://docbook.org/ns/docbook" class="title">foo</h2>
bar
</div>
我的实际问题是什么?
- 为什么要渲染
xmlns:d="http://docbook.org/ns/docbook"
?
- 如何在我的
bar
周围添加 <p>
标签?
您应该能够通过在 xsl:stylesheet
(分别为 xsl:transform
)元素上添加 exclude-result-prefixes="d"
来避免 h2
元素上的命名空间声明 xmlns:d="http://docbook.org/ns/docbook"
.
我假设添加
<xsl:template match="d:formalpara/d:para">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
确保 formalpara
的 para
子元素的转换,但我还没有检查它是否有效。
这是默认配置呈现形式参数的方式:
这个:
<formalpara>
<title>foo</title>
<para>bar</para>
</formalpara>
将呈现为:
<p>
<span class="formalpara-title">foo</span>
bar
</p>
我已经设置了 <xsl:param name="runinhead.default.title.end.punct"></xsl:param>
所以愚蠢的点不再被渲染。
这才是我真正想要的:
<div class="formalpara">
<h2 class="title">foo</h2>
<p>bar</p>
</div>
这是我目前所做的:
我改了:
<xsl:template match="d:formalpara">
<xsl:call-template name="paragraph">
.....
</xsl:template>
至:
<xsl:template match="d:formalpara">
<xsl:call-template name="block.object">
.....
</xsl:template>
我改变了:
<xsl:template match="d:formalpara/d:title|d:formalpara/d:info/d:title">
.....
<span class="formalpara-title">
.....
</span>
</xsl:template>
至:
<xsl:template match="d:formalpara/d:title|d:formalpara/d:info/d:title">
.....
<h2 class="title">
.....
</h2>
</xsl:template>
这是现在要呈现的内容:
<div class="formalpara">
<h2 xmlns:d="http://docbook.org/ns/docbook" class="title">foo</h2>
bar
</div>
我的实际问题是什么?
- 为什么要渲染
xmlns:d="http://docbook.org/ns/docbook"
? - 如何在我的
bar
周围添加<p>
标签?
您应该能够通过在 xsl:stylesheet
(分别为 xsl:transform
)元素上添加 exclude-result-prefixes="d"
来避免 h2
元素上的命名空间声明 xmlns:d="http://docbook.org/ns/docbook"
.
我假设添加
<xsl:template match="d:formalpara/d:para">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
确保 formalpara
的 para
子元素的转换,但我还没有检查它是否有效。