func (xmlNode *XmlNode) Path() (path string) { pathPtr := C.xmlGetNodePath(xmlNode.Ptr) if pathPtr != nil { p := (*C.char)(unsafe.Pointer(pathPtr)) defer C.xmlFreeChars(p) path = C.GoString(p) } return }
// If you need to check for the existence of an attribute, // use Attribute. func (xmlNode *XmlNode) Attr(name string) (val string) { if xmlNode.NodeType() != XML_ELEMENT_NODE { return } nameBytes := GetCString([]byte(name)) namePtr := unsafe.Pointer(&nameBytes[0]) valPtr := C.xmlGetProp(xmlNode.Ptr, (*C.xmlChar)(namePtr)) if valPtr == nil { return } p := unsafe.Pointer(valPtr) defer C.xmlFreeChars((*C.char)(p)) val = C.GoString((*C.char)(p)) return }
func (xmlNode *XmlNode) Content() string { contentPtr := C.xmlNodeGetContent(xmlNode.Ptr) charPtr := (*C.char)(unsafe.Pointer(contentPtr)) defer C.xmlFreeChars(charPtr) return C.GoString(charPtr) }