我目前正在将 XSL 用于一个工作项目,但我遇到了一个问题。
我正在尝试读取如下所示的数据库的值:
<fo:block font-weight='bold>hello</fo:block>
似乎XSL正在剥离<fo:block>
元素,因为它只给我文本(我只看到Hello,没有粗体,而且它的行为不像块元素)。我觉得,不知何故,XSL 将从数据库读取的值解释为字符串,并剥离<fo>
标签,只留下文本。
知道可以做些什么来保留我的造型吗?
(显然这个例子已经简化了,要显示的文本比那个更长)
编辑:自我回答以供将来参考
根据您要更改<xsl:value-of select='/fulfill-list/ticket-list/list-item/eventTicketContent/xmlTicketContent/ticketdescription'/>
的注释更改为<xsl:copy-of select='/fulfill-list/ticket-list/list-item/eventTicketContent/xmlTicketContent/ticketdescription'/>
(或可能<xsl:copy-of select='/fulfill-list/ticket-list/list-item/eventTicketContent/xmlTicketContent/ticketdescription/node()'/>
)。
我想感谢大家花时间回答我。我很高兴看到SO社区如此强大。
我已经以这种方式解决了我的问题:
<xsl:for-each select="/fulfill-list/ticket-list/list-item/eventTicketContent/xmlTicketContent/ticketdescription/node()">
<xsl:copy-of select="child::node()" />
</xsl:for-each>
我真的不知道引擎盖下发生了什么,为什么<fo>
标签被移除,但它们确实如此。遍历所有这些并使用<xsl:copy-of>
就可以解决问题。
再次,非常感谢你们!