Java 仅xpath返回搜索字符串

Java 仅xpath返回搜索字符串,java,xpath,saxon,Java,Xpath,Saxon,我想从saxon通过xpath 2.0在xml文档中搜索字符串“formEmail”、“form_q\d{1,3}”和“title”,如果引擎找到了这些字符串,我只想返回它们的列表。直到知道我只返回一个节点列表。是否可以返回相关字符串的列表 XPathCompiler xpath = proc.newXPathCompiler(); XPathExecutable exePath=xpath.compile(".//property[matches(@value,'formEmail|form_

我想从saxon通过xpath 2.0在xml文档中搜索字符串“formEmail”、“form_q\d{1,3}”和“title”,如果引擎找到了这些字符串,我只想返回它们的列表。直到知道我只返回一个节点列表。是否可以返回相关字符串的列表

XPathCompiler xpath = proc.newXPathCompiler();
XPathExecutable exePath=xpath.compile(".//property[matches(@value,'formEmail|form_q\\d{1,3}$|title')]");

由于目标字符串位于名为
value
的属性中,因此可以使用以下XPath将匹配属性的值作为字符串返回,而不是返回属性的父元素:

//property/@value[匹配(,'formEmail | form_q\\d{1,3}$| title')]/string()

如果需要消除重复字符串,那么最好编写
不同的值(.//property/@value[matches(,'formEmail | form|q\\d{1,3}$| title'))