-XMLWrapper.prototype.length = 1;\r
-XMLWrapper.prototype[ 'has' ] = XMLWrapper_has;\r
-XMLWrapper.prototype[ 'get' ] = XMLWrapper_get;\r
-XMLWrapper.prototype[ 'val' ] = XMLWrapper_val;\r
-XMLWrapper.prototype[ 'find' ] = XMLWrapper_find;\r
+/**\r
+ * tagName または nodeName\r
+ * @alias X.XML.prototype.tagName\r
+ * @type {string}\r
+ */\r
+XMLWrapper.prototype.tagName = '';\r
+/**\r
+ * ラップした xml の数 常に1または0, XMLList の場合2以上\r
+ * @alias X.XML.prototype.length\r
+ * @type {Number}\r
+ */\r
+XMLWrapper.prototype.length = 1;\r
+XMLWrapper.prototype[ 'parent' ] = XMLWrapper_parent;\r
+XMLWrapper.prototype[ 'has' ] = XMLWrapper_has;\r
+XMLWrapper.prototype[ 'get' ] = XMLWrapper_get;\r
+XMLWrapper.prototype[ 'val' ] = XMLWrapper_val;\r
+XMLWrapper.prototype[ 'find' ] = XMLWrapper_find;\r
+\r
+/**\r
+ * 親要素を返す、ルート要素の場合 null を返す\r
+ * @alias X.XML.prototype.parent\r
+ * @return {X.XML} 親要素\r
+ */\r
+function XMLWrapper_parent(){\r
+ if( this.length === 1 ) return this._rawXML && this._rawXML.parentNode ? new XMLWrapper( this._rawXML.parentNode ) : null;\r
+ if( this.length === 0 ) return null;\r
+ \r
+ return this[ 0 ].parentNode ? ( new XMLWrapper( this[ 0 ].parentNode ) ) : null;\r
+};\r