class Nokogiri::XML::Attr - nokogiri-1.6.8.1 Documentation

# class Nokogiri::XML::Attr

Attr represents a Attr node in an xml document.

### Public Class Methods

new(document, name) click to toggle source

Create a new Attr element on the `document` with `name`

    static VALUE new(int argc, VALUE *argv, VALUE klass)
    {
      xmlDocPtr xml_doc;
      VALUE document;
      VALUE name;
      VALUE rest;
      xmlAttrPtr node;
      VALUE rb_node;

      rb_scan_args(argc, argv, "2*", &document, &name, &rest);

      Data_Get_Struct(document, xmlDoc, xml_doc);

      node = xmlNewDocProp(
          xml_doc,
          (const xmlChar *)StringValueCStr(name),
          NULL
      );

      nokogiri_root_node((xmlNodePtr)node);

      rb_node = Nokogiri_wrap_xml_node(klass, (xmlNodePtr)node);
      rb_obj_call_init(rb_node, argc, argv);

      if(rb_block_given_p()) rb_yield(rb_node);

      return rb_node;
    }

### Public Instance Methods

content=(p1)
Alias for: value=
value=(content) click to toggle source

Set the value for this Attr to `content`

    static VALUE set_value(VALUE self, VALUE content)
    {
      xmlAttrPtr attr;
      Data_Get_Struct(self, xmlAttr, attr);

      if(attr->children) xmlFreeNodeList(attr->children);

      attr->children = attr->last = NULL;

      if(content) {
        xmlChar *buffer;
        xmlNode *tmp;

        /* Encode our content */
        buffer = xmlEncodeEntitiesReentrant(attr->doc, (unsigned char *)StringValueCStr(content));

        attr->children = xmlStringGetNodeList(attr->doc, buffer);
        attr->last = NULL;
        tmp = attr->children;

        /* Loop through the children */
        for(tmp = attr->children; tmp; tmp = tmp->next) {
          tmp->parent = (xmlNode *)attr;
          tmp->doc = attr->doc;
          if(tmp->next == NULL) attr->last = tmp;
        }

        /* Free up memory */
        xmlFree(buffer);
      }

      return content;
    }

Also aliased as: content=

### Private Instance Methods

inspect_attributes() click to toggle source

    # File lib/nokogiri/xml/attr.rb, line 9
    def inspect_attributes
      [:name, :namespace, :value]
    end