package jp.aonir.fuzzyxml;
import java.util.List;
import jp.aonir.fuzzyxml.xpath.FuzzyXMLNodePointerFactory;
import org.apache.commons.jxpath.JXPathContext;
import org.apache.commons.jxpath.ri.JXPathContextReferenceImpl;
/**
* FuzzyXML
*/
public class XPath {
static {
JXPathContextReferenceImpl.addNodePointerFactory(new FuzzyXMLNodePointerFactory());
}
public static FuzzyXMLNode selectSingleNode(FuzzyXMLElement element,String xpath){
JXPathContext ctx = JXPathContext.newContext(element);
return (FuzzyXMLNode)ctx.selectSingleNode(xpath);
}
@SuppressWarnings("unchecked")
public static FuzzyXMLNode[] selectNodes(FuzzyXMLElement element,String xpath){
JXPathContext ctx = JXPathContext.newContext(element);
List<FuzzyXMLNode> list = ctx.selectNodes(xpath);
return list.toArray(new FuzzyXMLNode[list.size()]);
}
public static Object getValue(FuzzyXMLElement element,String xpath){
JXPathContext ctx = JXPathContext.newContext(element);
return ctx.getValue(xpath);
}
}