XSLT - XML根元素中的连字符

时间:2015-02-05 10:58:52

标签: xml xslt

如果XSLT中有连字符,则XSLT找不到根元素:

<serial-issue>
    <title>hello</title>
    <issue-info>
        <pii>3426-4114(11)X6013-4</pii>
        <jid>Journal</jid>
        <issn>1526-4114</issn>
    </issue-info>
</serial-issue>

这是XSLT脚本:

<xsl:template match="/">
    <html>
        <body>
            <xsl:apply-templates select="serial-issue"/>
        </body>
    </html>
</xsl:template>

<xsl:template match="issue-info">
    <test>
    <xsl:value-of select="jid"/>
</test>
</xsl:template>

以上脚本无效。如果&#39; serial-issue&#39;更改为&#39; serialissue&#39;。你能帮忙吗?

1 个答案:

答案 0 :(得分:-1)

在此示例中,调用模板,匹配&#39; serial-issue&#39;但是没有这样的模板。

添加

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

到您的XSL脚本可以解决问题。 此外,它不是HTML标记,因此它在输出中不起作用。

样式表的最小版本可能如下所示:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
  <xsl:output method="html"/>

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

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

<xsl:template match="issue-info">
       <xsl:value-of select="jid"/>
</xsl:template>

</xsl:stylesheet>