【问题标题】:how to style <xsl:value-of select="$somevalue"> element如何设置 <xsl:value-of select="$somevalue"> 元素的样式
【发布时间】:2016-05-05 13:46:16
【问题描述】:

我想将“xsl:value-of”属性中的值设为粗体。我怎么能做到这一点?我尝试使用不起作用的 。请指导我,因为我是 xslt 的新手。

<fo:list-item-body >
    <fo:block>
        <fo:inline>
            <xsl:value-of select="$dosomething"></xsl:value-of>
            <xsl:text> </xsl:text>
            <xsl:value-of select="$doanotherthing"></xsl:value-of>
        </fo:inline>
    </fo:block>
</fo:list-item-body>

【问题讨论】:

    标签: xml xslt xsl-fo


    【解决方案1】:

    您可以在 fo:inline 元素上添加 font-weight="bold" 属性,例如

                    <fo:inline font-weight="bold">
                                <xsl:value-of select="$dosomething"></xsl:value-of>
                                    <xsl:text> </xsl:text>
                                    <xsl:value-of select="$doanotherthing"></xsl:value-of>
                                </fo:inline>
    

    https://www.w3.org/TR/xsl/#common-font-properties

    【讨论】:

      【解决方案2】:

      fo:inline(如图所示,没有指定任何其他属性)不会添加任何内容。由于font-weight是继承的,你可以在fo:block上指定,仍然不需要fo:inline

      <fo:list-item-body >
        <fo:block font-weight="bold">
          <xsl:value-of select="$dosomething"/>
          <xsl:text> </xsl:text>
          <xsl:value-of select="$doanotherthing"/>
        </fo:block>
      </fo:list-item-body>
      

      但是,如果您只想将文本的一部分设为粗体,那么您需要另一个 FO 用于影响该文本格式的属性,通常是 fo:inline (它自己的和可继承的属性)或fo:wrapper(仅适用于fo:character 的继承属性):

      <fo:list-item-body >
        <fo:block>
          <fo:inline font-weight="bold">
            <xsl:value-of select="$dosomething"/>
          </fo:inline>
          <xsl:text> </xsl:text>
          <xsl:value-of select="$doanotherthing"/>
        </fo:block>
      </fo:list-item-body>
      

      (另请注意,我正在为您的空 xsl:value-of 元素显示单标签表单。)

      【讨论】:

      • 谢谢托尼。我希望部分文本加粗。您的解决方案有助于解决问题。
      【解决方案3】:

      您忘记了样式属性 font-weight 属性应该用于在输出中获取粗体字符,如下所示:

      <fo:list-item-body >
          <fo:block>
              <fo:inline font-weight="bold">
                  <xsl:value-of select="$dosomething"></xsl:value-of>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="$doanotherthing"></xsl:value-of>
              </fo:inline>
          </fo:block>
      </fo:list-item-body>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-25
        • 1970-01-01
        • 2015-06-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多