代码之家  ›  专栏  ›  技术社区  ›  BrewinBombers

如何在xsl:text标记之间设置文本格式?

  •  5
  • BrewinBombers  · 技术社区  · 16 年前

    我有一个XSLT工作表,其中有一些类似于下面的文本:

    <xsl:text>I am some text, and I want to be bold</xsl:text>
    

    我想要一些粗体的文字,但这行不通。

    <xsl:text>I am some text, and I want to be <strong>bold<strong></xsl:text>
    

    不推荐使用的b标记也不起作用。如何在xsl:text标记中设置文本格式?

    5 回复  |  直到 10 年前
        1
  •  7
  •   jelovirt    16 年前

    你没有。 xsl:text 只能包含文本节点和 <strong> 是元素节点,而不是以少于个字符开头的字符串;XSLT是关于创建节点树,而不是标记。所以,你必须这样做

    <xsl:text>I am some text, and I want to be </xsl:text>
    <strong>bold<strong>
    <xsl:text> </xsl:text>
    
        2
  •  5
  •   Pattle    11 年前

    试试这个:

    <fo:inline font-weight="bold"><xsl:text>Bold text</xsl:text></fo:inline>
    
        3
  •  3
  •   David Medinets doug    16 年前

    <XSL:文本 disable output escaping=“是” >我想成为<STRONG>粗体<STRONG></xsl:text>

        4
  •  0
  •   Joe Skora    16 年前

    XSL-FO格式应该能够做到这一点,请参见W3Schools tutorial .

        5
  •  0
  •   Pavan    13 年前

    答案取决于内容需要多少格式,以及从何处获取内容。 如果你有较少的内容和格式,那么你可以使用杰洛维特的建议。

    <xsl:text>I am some text, and I want to be </xsl:text>
    <strong>bold<strong>
    <xsl:text> </xsl:text>
    

    然而,如果你的内容有大的格式,那么大卫·梅迪内斯建议的是更好的方法。

    <xsl:text disable-output-escaping="yes">
    

    我们有一些在用户界面上打印的说明。指令集很大,当然我们是从XML文件中读取这些指令的。

    在这种情况下,上述方法也易于使用和维护。这是因为内容是由技术作者提供的。他们不知道XSL。他们知道使用HTML标记,并且可以轻松地编辑XML文件。