code: def from_etree(cls, etree_element):
          
          ins = SaltNode.from_etree(etree_element)
          # TODO: this looks dangerous, ask Stackoverflow about it!
          # convert SaltNode into PrimaryTextNode
          ins.__class__ = PrimaryTextNode.mro()[0]
          ins.text = extract_primary_text(etree_element)
          return ins
docs: creates a ``PrimaryTextNode`` instance from the etree representation of
          a <nodes> element from a SaltXMI file.