允许从XML元素中对html样式化文本。

时间:2013-04-27 10:24:28

标签: html xml xslt

我一直在使用xslt的abit来将我的xml设计成可读的东西。然而,有一件事我无法弄清楚。

我想知道如何将样式应用于xml元素中的文本。例如,这是我的xml的一部分

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="mystylesheet.xsl" type="text/xsl"?>
<Collection>
     <Tals>
          <Indent="0">Weapon Training</Talent>
          <Cost>1</Cost>
          <Description>Confers <b>proficiency</b> of <i>two weapons</i>, either  melee or ranged. This talent make be aquired multiple times</Description>
     </Tals>

我想知道如何让我的描述元素以html格式输出..所以你可以看到粗体文本和斜体文本。

这就是我从mystylesheet.xsl

中的xml中捕获我的Description元素的方法
Description: </b><xsl:value-of select="Description"/>

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果我的理解是正确的,您想要复制描述的内容。 通过将<xsl:value-of select="Description"/>更改为

,可以轻松完成此操作
  <xsl:apply-templates select="Description/node()"/>

要使其工作,您还必须添加“身份转换模板”

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

更新: 另外你也可以使用

<xsl:copy-of select="Description/node()"/>

但“身份转换模板”是更好的解决方案,因为可以添加更专业的模板。