XMLConfiguration デフォルトでの値の取得方法とXPathを使用してとる方法です。
2008/01/24
commons
configuration
java
xpath
CommonsのConfigurationです。
Configuraionは、いいAPIだと思います。
デフォルトでの値の取得方法とXPathを使用してとる方法です。
import java.io.ByteArrayInputStream;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.tree.DefaultExpressionEngine;
import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine;
public class TestXMLConfiguration {
public static void main(String[] args) throws ConfigurationException {
a();
}
static String s = "<root><a><b>test</b><c>test2</c></a></root>";
public static void a() throws ConfigurationException {
// xxxExpressionEngine
XPathExpressionEngine xpathExpressionEngine = new XPathExpressionEngine();
DefaultExpressionEngine defaultExpressionEngine = new DefaultExpressionEngine();
XMLConfiguration xml = new XMLConfiguration();
xml.load(new ByteArrayInputStream(s.getBytes()));
// (a) XPathExpressionEngine
xml.setExpressionEngine(xpathExpressionEngine);
System.out.println(xml.getString("a/b"));
// (b) DefaultExpressionEngine
xml.setExpressionEngine(defaultExpressionEngine);
System.out.println(xml.getString("a.b"));
}
}
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.tree.DefaultExpressionEngine;
import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine;
public class TestXMLConfiguration {
public static void main(String[] args) throws ConfigurationException {
a();
}
static String s = "<root><a><b>test</b><c>test2</c></a></root>";
public static void a() throws ConfigurationException {
// xxxExpressionEngine
XPathExpressionEngine xpathExpressionEngine = new XPathExpressionEngine();
DefaultExpressionEngine defaultExpressionEngine = new DefaultExpressionEngine();
XMLConfiguration xml = new XMLConfiguration();
xml.load(new ByteArrayInputStream(s.getBytes()));
// (a) XPathExpressionEngine
xml.setExpressionEngine(xpathExpressionEngine);
System.out.println(xml.getString("a/b"));
// (b) DefaultExpressionEngine
xml.setExpressionEngine(defaultExpressionEngine);
System.out.println(xml.getString("a.b"));
}
}
expression engineを指定することで、パスの記述方法を変更します。
デフォルトだとドット区切りでパス指定を行います。
: