xslt 很新,我正在尝试为 PDF 生成目的编写一个 xslt 模板。
这是传入 xml 的片段:
<element name="rootElement">
<attributes />
<elements>
<element name="childElement">
<attributes>
<attribute name="attributename" value="Yes" />
</attributes>
</element>
</elements>
</element>
除了以表格形式打印所有元素名称和相应值之外,我还需要显示特定于每个子元素的文本。
在做了一些研究之后,我认为这可以通过模板匹配和设置模式属性的组合来实现。这是我写的代码:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="DOCUMENT">
<xsl:apply-templates select="DATA" />
</xsl:template>
<xsl:template match="DATA">
<xsl:apply-templates select="element" />
<xsl:apply-templates select="element" mode="test" />
</xsl:template>
<xsl:template match="element">
<fo:block font-size="18.0pt" font-family="Arial"
font-weight="bold">
Display something I.
</fo:block>
</xsl:template>
<xsl:template match="element" mode="test">
<fo:block font-size="18.0pt" font-family="Arial"
font-weight="bold">
Display something II.
</fo:block>
</xsl:template>
</xsl:stylesheet>
这是执行后的输出:
<?xml version="1.0" encoding="UTF-8"?>
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" font-size="18.0pt" font-family="Arial" font-weight="bold">
Display something I.
</fo:block>
谁能告诉我为什么没有执行与模式匹配的模板?
任何想法/解决方案/见解将不胜感激。