Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 样式表正在打印数据。为什么?_Xslt_Xpath_Xslt 1.0_Xslt 2.0 - Fatal编程技术网

Xslt 样式表正在打印数据。为什么?

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

我真的不明白。在运行下面的样式表时,为什么要打印我的参数(请参见下面XML中的参数)?这是唯一被印刷出来的东西。我希望什么也不会印出来。输出是

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 "&#160;">
    ]>
<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 "&#160;">
    ]>
<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>