有没有办法从xpath获取tokenize值。
尝试这个但没有帮助。 String Xpath =“tokenize(/ root / child,'〜')[1]”;
getAttributeValue(元件,Xpath的);
public static String getAttributeValue(Element obj, String xpath) throws Exception{
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpatha = xPathfactory.newXPath();
XPathExpression expr = xpatha.compile(xpath);
String value =(String) expr.evaluate(obj, XPathConstants.STRING);
return value;
}
<root>
<child>hello~How~Are~You</child></root>
我需要'如何'来自xpath的第二个令牌。我怎么能得到这个
答案 0 :(得分:2)
您需要使用XPath 2.0或3.0或XQuery 1.0或更高版本的实现(在2007年XPath 2.0或XQuery 1.0中引入tokenize
)以及允许您返回XPath值的合适API 2.0或XQuery 1.0处理。
因此,例如使用Saxon 9.6和XPath 2.0,我建议使用http://saxonica.com/html/documentation/xpath-api/s9api-xpath.html。
答案 1 :(得分:0)
鉴于你在Java中工作,在那里进行“tokenize”而不是在XPath中可能更简单:
XPathExpression expr = xpatha.compile("/root/child");
String value = ((String) expr.evaluate(obj, XPathConstants.STRING))
.split("~")[1]; // Java counts from 0, XPath from 1