我的任务是通过XML和XSLT将文字文档转换为网页,我想保留文字文档的灵活性(在标题中输入标题,在文字中输入标题等)。但使其看起来像Confluence或Wikipedia这样的现代网站。
我成功地通过将文档分为<Section>
来重新创建了这种灵活性,每个文档具有各种<Element>
,可以根据<Element>
内部的内容将它们转换成不同的事物,如下所示: :
<xsl:for-each select="Protocol/protocolSection">
<section>
<xsl:variable name="ProSecID" select="id" />
<h1 id="{$ProSecID}">
<xsl:value-of select="Headline" />
<xsl:for-each select="protocolElement">
<div>
<xsl:choose>
<xsl:when text="elementType='blah'>
</when>
</xsl:choose>
</div>
</xsl:for-each>
</section>
</xsl:for-each>
这很好用,但是我现在尝试创建一个下拉导航栏,该导航栏将包含所有<Section>
标题的列表,并在其下方列出所有{{1}类型的<elementType>
的列表}}。即使我试图放置相同类型的“选择”逻辑,而仅将其设置为寻找elementType subHeadline,这也无法正常工作。
我不明白为什么它会在身体的某个位置起作用而在另一位置不起作用。
subHeadline的外观如下:
<subHealine>
这就是XSL中有效的部分的样子:
<protocolElement>
<elementType>subHeadline</elementType>
<subHeadline>
<id>methodology</id>
<Text>Methodology</Text>
</subHeadline>
</protocolElement>
我想做的是:
<xsl:when test="elementType='subHeadline'">
<xsl:variable name="subHeadID" select="subHeadline/id" />
<h3 id="{$subHeadID}">
<xsl:value-of select="subHeadline/Text" />
</h3>
</xsl:when>
我正在尝试创建类似侧边栏here
的内容帮助会很棒!