2016-04-14 119 views
1

我想通過saxon的xpath 2.0在xml文檔中搜索字符串「formEmail」,「form_q \ d {1,3}」和「title」,並且只想返回那些列表字符串,如果他們被引擎發現。直到知道我只返回一個節點列表。是否有可能返回相關字符串的列表?xpath只返回搜索字符串

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

回答

1

由於目標字符串在屬性命名value,你有可能會匹配屬性作爲字符串而不是返回屬性的父元素,通過使用以下XPath的返回值:

.//property/@value[matches(.,'formEmail|form_q\\d{1,3}$|title')]/string() 
+0

如果您需要消除重複的字符串,那麼編寫'distinct-values(.// property/@ value [matches(。,'formEmail | form_q \\ d {1,3} $ | title')])可能會更好。 ' –