[英]Sum String-Length of two different nodes with Xpath - Sum two nodes string-length
以下 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()
函數需要一個 node-set ,您嘗試通過string-length()
調用提供它,但失敗了。 sum()
在這里似乎不是合適的函數。
您可以直接在謂詞中添加長度:
//FullName[string-length(FirstName)+string-length(LastName) >= 30]
或者您可以先使用連接,然后獲取長度:
//FullName[string-length(concat(FirstName,LastName)) >= 30]
或者,如果您的代碼段代表所有FullName
元素,只需考慮上下文節點的所有文本節點內容的長度,如下所示:
//FullName[string-length() >= 30]
如果名稱的數量可能會有所不同(例如 Middle Initil、orefix、suffix 等...),通常無法使用單個 XPath 1.0 表達式獲得所需的總和。
在 XPath 2.0 中,這是可能的:
//FullName[sum(*/stringlength()) ge 30]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.