class LibXML::XML::XPath::Expression
The XML::XPath::Expression class is used to compile XPath expressions so they can be parsed only once but reused multiple times.
doc = XML::Document.string(IO.read('some xml file')) expr = XPath::Expression.new('//first') doc.root.each do |node| result = node.find(expr) # many, many, many times # ... end
Public Class Methods
Source
static VALUE rxml_xpath_expression_compile(VALUE klass, VALUE expression)
{
VALUE args[] = {expression};
return rb_class_new_instance(1, args, cXMLXPathExpression);
}
Source
static VALUE rxml_xpath_expression_initialize(VALUE self, VALUE expression)
{
xmlXPathCompExprPtr compexpr = xmlXPathCompile((const xmlChar*)StringValueCStr(expression));
if (compexpr == NULL)
{
const xmlError *xerror = xmlGetLastError();
rxml_raise(xerror);
}
RTYPEDDATA_DATA(self) = compexpr;
return self;
}