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
Xpath 将字符串乘以整数?_Xpath_Xquery - Fatal编程技术网

Xpath 将字符串乘以整数?

Xpath 将字符串乘以整数?,xpath,xquery,Xpath,Xquery,例如,在python中,我可以做到这一点 "X" * 3 或者,更重要的是在这种情况下 "XO" * 3 分别得到XXX和xo 我正试图用xpath/xquery复制这一点。理想情况下,它应该是 "XO" * count(something) 我能得到的最接近的方法是,通过创建一个长度接近我估计的countsomething将是什么的字符串,然后用子字符串对其进行切片,从而伪造输出。所以如果我的计数返回2 将返回XX。 如果我的字符串是XO,它会变得稍微复杂一些,在这种情况下,我必须将其修

例如,在python中,我可以做到这一点

"X" * 3
或者,更重要的是在这种情况下

"XO" * 3
分别得到XXX和xo

我正试图用xpath/xquery复制这一点。理想情况下,它应该是

"XO" * count(something)
我能得到的最接近的方法是,通过创建一个长度接近我估计的countsomething将是什么的字符串,然后用子字符串对其进行切片,从而伪造输出。所以如果我的计数返回2

将返回XX。 如果我的字符串是XO,它会变得稍微复杂一些,在这种情况下,我必须将其修改为

substring("XOXOXO",1,count(//something) * 2)
得到XOXO

然而,除了感觉不舒服外,这些还需要估计计数并创建正确长度的字符串+一些安全裕度

在xpath或xquery中有更好的方法吗?

您可以使用1到3XO'=>string join,当然,如果您愿意,您可以将其放入函数中,并使用字符串参数和所需的乘法数:

declare function local:multiply-string($input as xs:string, $factor as xs:integer) as xs:string
{
   ((1 to $factor) ! $input) => string-join() 
};

local:multiply-string('XO', 3)
您可以使用1到3XO'=>string join,当然,如果您愿意,您可以将其放入函数中,并使用字符串参数和所需的乘法数:

declare function local:multiply-string($input as xs:string, $factor as xs:integer) as xs:string
{
   ((1 to $factor) ! $input) => string-join() 
};

local:multiply-string('XO', 3)

还在玩你的小提琴;它返回正确的输出,但有趣的是,它也会引发词法分析失败警告。@Jack,是的,对此很抱歉,小提琴使用ACE编辑器组件,不幸的是,该组件的XQuery模式从未更新过,无法解析XQuery 3.1功能,如maps或=>。不幸的是,纠正这种模式对我来说有点太难了。因此,您将不得不接受一些XQuery 3.1语法被报告为错误。谢谢,Martin。仅供参考,我还使用BaseX尝试了两种选项-没有错误!还在玩你的小提琴;它返回正确的输出,但有趣的是,它也会引发词法分析失败警告。@Jack,是的,对此很抱歉,小提琴使用ACE编辑器组件,不幸的是,该组件的XQuery模式从未更新过,无法解析XQuery 3.1功能,如maps或=>。不幸的是,纠正这种模式对我来说有点太难了。因此,您将不得不接受一些XQuery 3.1语法被报告为错误。谢谢,Martin。仅供参考,我还使用BaseX尝试了两种选项-没有错误!