XSLT为什么这不是选择我想要的但是选择整个xml?

时间:2014-04-16 07:32:16

标签: xslt

我正在尝试为测试做一个简单的选择,但它似乎不起作用。 这是sml:http://pastebin.com/cwEcVEiL

这是我的xslt风格:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tei="http://www.tei-c.org/ns/1.0"
    exclude-result-prefixes="xs"
    version="2.0">
    <xsl:template match="/tei:TEI/tei:text/tei:body">
       TEST
    </xsl:template>
</xsl:stylesheet>

使用此样式,它只选择整个xml文档 但如果我输入match =&#34; /&#34 ;,那么我会按预期输出一次TEST。

有什么问题?

1 个答案:

答案 0 :(得分:2)

对于完全不与任何模板匹配的元素,XSLT将应用built in default templates

除非您需要此默认行为,否则应覆盖这些行为,例如: :

<xsl:template match="/">
   <xsl:apply-templates select="/tei:TEI/tei:text/tei:body" />
</xsl:template>

<xsl:template match="tei:body">
   TEST
</xsl:template>