Xslt 版本更改时混淆语句

Xslt 版本更改时混淆语句,xslt,xslt-1.0,xslt-2.0,Xslt,Xslt 1.0,Xslt 2.0,我有下面的XSLT语句 <xsl:value-of select="substring-after( ./title/content-style/text(),' ')" /> 请让我知道XSL1.0中的正确之处是XSL2.0中的错误之处 感谢XSLT 1.0中的,当您将一个以上节点的节点集传递给一个需要单个字符串的函数时,它只使用该节点集中第一个节点的字符串值,而忽略其余节点。在XSLT 2.0中,函数后的子字符串要求其参数为xs:string?,即零或一个字符串,因此

我有下面的XSLT语句

 <xsl:value-of select="substring-after(
    ./title/content-style/text(),' ')" />
请让我知道XSL1.0中的正确之处是XSL2.0中的错误之处


感谢XSLT 1.0中的,当您将一个以上节点的节点集传递给一个需要单个字符串的函数时,它只使用该节点集中第一个节点的字符串值,而忽略其余节点。在XSLT 2.0中,函数后的
子字符串要求其参数为
xs:string?
,即零或一个字符串,因此如果向其传递一个包含多个项的序列,则会导致类型不匹配错误

我假设
/title/content style/text()
选择了多个节点,即
内容样式
元素中有多个
标题
、多个
内容样式
和/或多个文本节点


考虑是否确实需要在此处使用
text()
——您真的需要单独处理
content style
的每个文本节点子节点,还是只需要将
content style
元素的字符串值作为一个整体?如果是前者,您需要(,'')之前的
title/content style/text()/substring(,'')
(仅适用于2.0),如果是后者,请尝试在(title/content style,'')之后说
substring(

我也有同样的问题,但对我来说,结果是,虽然我的模式对于所讨论的元素,有多重性
可选设置
时,它没有
无界设置
时,我使用的输入数据有两个元素,它期望0…1

    <xsl:stylesheet version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
      xmlns:ntw="Number2Word.uri" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      exclude-result-prefixes="ntw">
<xsl:stylesheet version="2.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:ntw="Number2Word.uri" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  exclude-result-prefixes="ntw">
XSLT 2.0 Debugging Error: Error: 
file:///C:/Users/u0138039/Desktop/Proview/HK/HKWB2014/XSLT%20and%20CSS/new_bull.xsl:202: 
Wrong occurrence to match required sequence type -   
Details: -     XPTY0004: The supplied sequence ('2' item(s)) has 
the wrong occurrence to match the sequence type xs:string ('zero or 
one')