/*
* call-seq:
* attribute_nodes
*
* Get a list of attributes for this Node
*/
static VALUE attribute_nodes(VALUE self)
{
xmlTextReaderPtr reader;
VALUE attr ;
Data_Get_Struct(self, xmlTextReader, reader);
attr = rb_ary_new() ;
if (! has_attributes(reader))
return attr ;
xmlNodePtr ptr = xmlTextReaderExpand(reader);
if(ptr == NULL) return Qnil;
// FIXME I'm not sure if this is correct..... I don't really like pointing
// at this document, but I have to because of the assertions in
// the node wrapping code.
if(!ptr->doc->_private) {
VALUE rb_doc = Data_Wrap_Struct(cNokogiriXmlDocument, 0, 0, ptr->doc);
rb_iv_set(rb_doc, "@decorators", Qnil);
ptr->doc->_private = (void *)rb_doc;
}
Nokogiri_xml_node_properties(ptr, attr);
return attr ;
}