使用xPath我得到这样的文本:
Sed id felis mi; Nam porta lacinia sapienvestibulum egestas; Prasent nec nisl purus,emol mollis metus。 Fusce euismod ante idtellus tincidunt dignissim ornare magna blandit。 Nunc id risus quam。
我想将其分为两个变量:
var1 =从开始到第一个点的文本=>如果此部分包含10个以上的单词(由空格分隔)并且包含分号“;”,则它将从开始到第一个分号使用文本。
var2 =文本的右侧。
我从这段代码开始,但是并没有给我想要的东西(我还没有处理10个单词的条件):
let $left := data(tokenize($doc//div/blockquote/p/text(), '^(.*?)[;|.](.*?)$')[1])
let $right := data(tokenize($doc//div/blockquote/p/text(), '^(.*?)[;|.](.*?)$')[2])
提前致谢。
最佳答案
试试这个
for $p in doc('file:///c:/test.xml')//div/blockquote/p/text()
return
if (count(tokenize(tokenize($p,'[.]')[1],'\s+')) gt 10) then
(tokenize($p,'[.]')[1])
else
(tokenize($p,';')[1])
有关参考,请参见fn:tokenize。