需要使用XSLT转换xml

时间:2016-06-08 21:15:49

标签: xml xslt

我正在开发一个XSLT,我将XML转换为漂亮的html标记。

我在下面输入了XML:

<div>
    A<a href="hell.aspx?id=G430"> firm</a> must conduct its business with integrity.
</div>

我想把它变成:

public function getPlainPassword()
{
    return $this->plainPassword;
}

除了创建这个链接节点之外,大多数转换都非常简单。

1 个答案:

答案 0 :(得分:1)

您应该使用xsl:value-of来添加更多模板来转换后代节点,而不是使用text来获取xsl:apply-templates节点的值

试试这个XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml"/> 
  <xsl:template match="entry"> 
    <div> 
      <xsl:apply-templates select="text"/> 
    </div> 
  </xsl:template> 

  <xsl:template match="text">
    <xsl:apply-templates />
  </xsl:template> 

  <xsl:template match="autodeftext">
    <a href="hell.aspx?id={@glossary-id}">
       <xsl:apply-templates />
    </a>
  </xsl:template> 
</xsl:stylesheet>

严格来说,您实际上可以删除匹配text的模板,因为XSLT built-in template rules无论如何都会做同样的事情。

请注意在创建href属性时使用Attribute Value Templates来简化代码。