2016-02-10 4 views
1

Использование API VTD-XML 2.11 (Java) при оценке выражения XPath concat() в простых текстах или xml-алиментах, вместо этого результат 2.0, он не со следующим исключением:Функция concat() XPath Оценка не удается при использовании с AutoPilot в VTD-XML

Exception in thread "main" com.ximpleware.XPathEvalException: Function Expr can't eval to node set 
    at com.ximpleware.FuncExpr.evalNodeSet(FuncExpr.java:1033) 
    at com.ximpleware.AutoPilot.evalXPath(AutoPilot.java:876) 

Вот следующая программа:

private static String getElementValue() throws XPathParseException, XPathEvalException, NavException { 
    String value = null; 

    VTDGen gen = new VTDGen(); 
    gen.setDoc(data.getBytes()); 
    gen.parse(false); 

    VTDNav nav = gen.getNav(); 

    AutoPilot pilot = new AutoPilot(nav); 
    pilot.selectXPath("concat(\"Hello\", \"Mr Buddy\")"); 

    int bufferIndex = NO_MATCH; 
    if((bufferIndex = pilot.evalXPath()) != NO_MATCH) { 
     value= nav.getXPathStringVal(); 
    } 
    System.out.println(value); 
} // end of getElementValue() 
+0

Я думаю, у можете попробовать evalXpathToString метод ... –

+0

Тогда как я могу передать XPath –

+0

Если у вас есть пример того, как конкатенировать два XPaths или один XPATH + постоянное значение. –

ответ

1

Это мой код, и это, кажется, работает хорошо для меня ... смотреть на него и дайте мне знать ваши мысли ..

import com.ximpleware.*; 
public class concatTest{ 
    public static void main(String s1[]) throws Exception { 
     VTDGen vg= new VTDGen(); 
     String s = "<users><user><firstName>some </firstName><lastName> one</lastName></user></users>"; 
     vg.setDoc(s.getBytes()); 
     vg.parse(false); 
     VTDNav vn = vg.getNav(); 
     AutoPilot ap = new AutoPilot(); 
     ap.selectXPath("concat('good', ' luck')"); 
     System.out.println(" concat output ==>"+ap.evalXPathToString()); 
     ap.selectXPath("concat(/, '')"); 
     ap.bind(vn); 
     System.out.println(" concat output ==>"+ap.evalXPathToString()); 
    } 

} 
+0

Спасибо. отлично работает –

+0

Привет, я хочу еще одну вещь, если значение xpath не соответствует Я не хочу конкат. Как мы добьемся. –

+0

Можете ли вы уточнить, что вы имеете в виду, не сопоставляя ни один пример? –

 Смежные вопросы

  • Нет связанных вопросов^_^