Xslt 样式表正在打印数据。为什么?
我真的不明白。在运行下面的样式表时,为什么要打印我的参数(请参见下面XML中的参数)?这是唯一被印刷出来的东西。我希望什么也不会印出来。输出是Xslt 样式表正在打印数据。为什么?,xslt,xpath,xslt-1.0,xslt-2.0,Xslt,Xpath,Xslt 1.0,Xslt 2.0,我真的不明白。在运行下面的样式表时,为什么要打印我的参数(请参见下面XML中的参数)?这是唯一被印刷出来的东西。我希望什么也不会印出来。输出是 trueSelskapet1000548 样式表: <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="verticaldata/menuitems/menuitem"&g
trueSelskapet1000548
样式表:
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="verticaldata/menuitems/menuitem">
</xsl:template>
源XML(仅开头,有效):
名称
名称
塞尔斯卡佩特
真的
1000
我不知道
编辑:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet
version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:portal="http://www.enonic.com/cms/xslt/portal"
exclude-result-prefixes="#all">
<xsl:output indent="no" method="html" omit-xml-declaration="yes"/>
<xsl:output indent="no" method="html" omit-xml-declaration="yes"/>
快速提示:接下来,请创建问题,供参与者轻松复制/粘贴您提供的XML、XSLT等(即确保格式正确)。不这样做会造成不必要的挫折感,从而导致您的问题被忽略 话虽如此: 您看到的结果是100%预期的,并归因于(我的重点): 当xsl:apply-templates选择了一个节点并且没有 样式表中可用于处理该节点的模板规则, 而是计算内置模板规则。内置模板 文档节点和元素节点的规则导致 待处理节点文本节点和属性的内置规则 节点会将文本复制到结果树中。 后来: 文本和属性节点的内置模板规则返回文本 包含上下文节点的字符串值的节点,除非 字符串值的长度为零,在这种情况下,它返回一个空值 序列它是有效的:
因此,由于没有定义直接寻址这些文本节点的模板,因此隐式调用了文本节点的内置模板;因此,您可以得到该文本的字符串值。我发现答案不是完整的xml。我是说原件是有效的。Thanks@user874774当前位置我想你们两个的意思都是“格式良好”而不是“有效”)。此XML没有与之关联的DTD。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<xsl:stylesheet
version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:portal="http://www.enonic.com/cms/xslt/portal"
exclude-result-prefixes="#all">
<xsl:output indent="no" method="html" omit-xml-declaration="yes"/>
<xsl:output indent="no" method="html" omit-xml-declaration="yes"/>
<xsl:template match="text()|@*" mode="#all">
<xsl:value-of select="."/>
</xsl:template>