如何根据 XML 深度通过 XSLT 更改标头级别
我的 XSL 文件:
...
<div>
<xsl:choose>
<xsl:when test="count(ancestor::node()) = 1">
<h2>
</xsl:when>
<xsl:when test="count(ancestor::node()) = 2">
<h3>
</xsl:when>
</xsl:choose>
<xsl:attribute name="id">
<xsl:value-of select="@id" />
</xsl:attribute>
<xsl:copy-of select="title/node()"/>
<xsl:choose>
<xsl:when test="count(ancestor::node()) = 1">
</h2>
</xsl:when>
<xsl:when test="count(ancestor::node()) = 2">
</h3>
</xsl:when>
</xsl:choose>
</div>
我知道不允许像这样分割标签 h2.../h2、h3.../h3。
但如何正确地做到这一点呢?
My XSL-file:
...
<div>
<xsl:choose>
<xsl:when test="count(ancestor::node()) = 1">
<h2>
</xsl:when>
<xsl:when test="count(ancestor::node()) = 2">
<h3>
</xsl:when>
</xsl:choose>
<xsl:attribute name="id">
<xsl:value-of select="@id" />
</xsl:attribute>
<xsl:copy-of select="title/node()"/>
<xsl:choose>
<xsl:when test="count(ancestor::node()) = 1">
</h2>
</xsl:when>
<xsl:when test="count(ancestor::node()) = 2">
</h3>
</xsl:when>
</xsl:choose>
</div>
I know that it is not allowed to split tags h2.../h2, h3.../h3 like this.
But how to do this correctly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用递归模板来完成此操作并动态生成标题元素。
例如,此输入 XML:
由此 XSLT 处理:
给出以下 HTML:
You could do this with a recursive template and generate the heading element dynamically.
For example, this input XML:
processed by this XSLT:
gives the following HTML:
你可以使用
You could use