【问题标题】:Allow html styling of text from XML element.允许来自 XML 元素的文本的 html 样式。
【发布时间】:2013-04-27 10:24:28
【问题描述】:

我一直在使用 abit xslt 将我的 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"/>

任何帮助将不胜感激。

【问题讨论】:

  • 我的理解是你喜欢将Description的内容原样输出(包含文本和html标签)?
  • 是的,我想让描述中的文本看起来和行为完全像 html。

标签: html xml xslt


【解决方案1】:

如果我的理解是正确的,你喜欢复制描述的内容。 这可以通过将 &lt;xsl:value-of select="Description"/&gt; 更改为

轻松完成
  <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()"/>

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

【讨论】:

  • 好的,我会试试这个......我不太确定你的第二个节点示例......但是我会尝试阅读。
  • 我尝试了您示例的第一部分,但没有成功。在您的第二个示例中,我不理解“@|node()”
  • 您必须将此模板 &lt;xsl:template match="@*|node()"&gt; 添加到您的 xls 文件中。使&lt;xsl:apply-templates select="Description"/&gt;工作。所以你需要两者。
  • @HurkNburkS:你试过这个吗?
  • 是的.. 但我需要再做一次,因为它最初不起作用.. 更像是我认为我的编码不够好。我还在努力。
猜你喜欢
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多