diff --git a/html/query.go b/html/query.go
index <HASH>..<HASH> 100644
--- a/html/query.go
+++ b/html/query.go
@@ -106,9 +106,15 @@ func SelectAttr(n *html.Node, name string) (val string) {
 }
 
 // OutputHTML returns the text including tags name.
-func OutputHTML(n *html.Node) string {
+func OutputHTML(n *html.Node, self bool) string {
 	var buf bytes.Buffer
-	html.Render(&buf, n)
+	if self {
+		html.Render(&buf, n)
+	} else {
+		for n := n.FirstChild; n != nil; n = n.NextSibling {
+			html.Render(&buf, n)
+		}
+	}
 	return buf.String()
 }
 
diff --git a/html/query_test.go b/html/query_test.go
index <HASH>..<HASH> 100644
--- a/html/query_test.go
+++ b/html/query_test.go
@@ -66,7 +66,7 @@ func TestXPath(t *testing.T) {
 	if strings.Index(InnerText(node), "Logo") > 0 {
 		t.Fatal("InnerText() have comment node text")
 	}
-	if strings.Index(OutputHTML(node), "Logo") == -1 {
+	if strings.Index(OutputHTML(node, true), "Logo") == -1 {
 		t.Fatal("OutputHTML() shoud have comment node text")
 	}
 }
feature: OutputHTML allow node itself output or not #9