草庐IT

xml - Sum String-Length of two different nodes with Xpath - 将两个节点的字符串长度相加

coder 2024-06-25 原文

以下 xpath 似乎不起作用:

//FullName[sum(string-length(FirstName) | string-length(LastName))>= 30]

错误:表达式必须求值为节点集。

XML 片段

<FullName>
 <FirstName>somereallylongfirstnameguy</FirstName>
 <LastName>somereallylonglasttnameguyabcdefghijklmnopqrstuv</LastName>
</FullName>

我知道 sum 函数将数字相加,字符串长度返回数字。

下面的表达式工作正常:

//FullName[string-length(FirstName) >= 1]

如有任何帮助,我们将不胜感激。

最佳答案

sum() 函数 expects a node-set ,您尝试通过 string-length() 调用提供它,但失败了。 sum() 在这里似乎不是合适的函数。

您可以直接在谓词中将长度相加:

//FullName[string-length(FirstName)+string-length(LastName) >= 30] 

或者你可以先使用concatenate,然后获取长度:

//FullName[string-length(concat(FirstName,LastName)) >= 30] 

或者,如果您的代码段代表所有 FullName 元素,只需像这样考虑上下文节点的所有文本节点内容的长度:

//FullName[string-length() >= 30] 

关于xml - Sum String-Length of two different nodes with Xpath - 将两个节点的字符串长度相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7828091/

有关xml - Sum String-Length of two different nodes with Xpath - 将两个节点的字符串长度相加的更多相关文章

随机推荐