Xslt 版本更改时混淆语句
我有下面的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?,即零或一个字符串,因此
<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')