Существует множество способов достичь этого. Я предполагаю, что вы прочитали это один раз для долго работающего приложения, поэтому производительность не должна быть проблемой. Поэтому я бы пошел на API Java XPath ( Tutorial ).
Вот полностью рабочий пример использования XPath (примечание: просто замените StringReader
на Reader
, подходящий для ваших пользователей - например, FileReader
):
import java.io.StringReader;
import javax.xml.xpath.XPathFactory;
import org.xml.sax.InputSource;
public class XPath {
public static void main(String[] args) throws Exception {
String xml = "<hibernate-configuration><session-factory><property name=\"hibernate.connection.provider_class\">org.hibernate.connection.C3P0ConnectionProvider</property><property name=\"connection.driver_class\">com.mysql.jdbc.Driver</property><property name=\"connection.url\">jdbc:mysql://192.168.1.55/tisas</property></session-factory></hibernate-configuration>";
String connectionUrl = XPathFactory.newInstance().newXPath().compile("//session-factory/property[@name='connection.url']/text()").evaluate(new InputSource(new StringReader(xml)));
System.out.println("connectionUrl = " + connectionUrl);
}
}
Я бы не стал использовать DOM (как предложил Ram), если вам нужно только одно значение из файла, для него потребуется больше кода.