Подтвердить что ты не робот

Какой простой способ в java оценить xpath в строке и вернуть строку результата

Простой ответ на простой вопрос.

Например:

String xml = "<car><manufacturer>toyota</manufacturer></car>";
String xpath = "/car/manufacturer";
assertEquals("toyota",evaluate(xml, xpath));

Как я могу написать метод оценки простым и понятным способом, который будет работать для любого заданного корректного xml и xpath.

Очевидно, что это может быть достигнуто, но большинство кажется очень многословным.

Любые простые способы, которых я не вижу/библиотеки, которые могут это сделать?

В случаях, когда возвращаются несколько узлов, я просто хочу, чтобы это было строковое представление.

4b9b3361

Ответ 1

Здесь вы можете сделать следующее с Java SE:

import java.io.StringReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.xml.sax.InputSource;

public class Demo {

    public static void main(String[] args) throws Exception {
        String xml = "<car><manufacturer>toyota</manufacturer></car>";
        String xpath = "/car/manufacturer";
        XPath xPath = XPathFactory.newInstance().newXPath();
        assertEquals("toyota",xPath.evaluate(xpath, new InputSource(new StringReader(xml))));
    }

}

Ответ 2

В этом случае библиотека XMLUnit может быть идеально подходит: http://xmlunit.sourceforge.net/userguide/html/index.html#Xpath%20Tests

Он предоставляет некоторые дополнительные методы assert.

Например:

assertXpathEvaluatesTo("toyota", "/car/manufacturer",
    "<car><manufacturer>toyota</manufacturer></car>");