* Original code by ofk ( kQuery, ksk )\r
* - http://d.hatena.ne.jp/ofk/comment/20090106/1231258010\r
* - http://d.hatena.ne.jp/ofk/20090111/1231668170\r
+ * \r
+ * TODO X.Class で作り、kill を強要する\r
*/\r
\r
X[ 'XML' ] = XMLWrapper;\r
\r
+/**\r
+ * XML 探索用のラッパークラスです\r
+ * @alias X.XML\r
+ * @class XML 探索用のラッパークラスです\r
+ * @constructor\r
+ * @param {xml}\r
+ */\r
function XMLWrapper( xml ){\r
this._rawXML = xml;\r
};\r
\r
-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
+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
function XMLWrapper_has( queryString ){\r
return !!this.find( queryString ).length;\r
};\r
\r
function XMLWrapper_val( queryString, type ){\r
- var attr_textContent = X.UA.IE < 9 || X.UA.Opera ? 'innerText' : X.UA.IE9 ? 'text' : 'textContent',\r
+ var attr_textContent = X_UA[ 'IE' ] < 9 || X_UA[ 'Opera' ] ? 'innerText' : X_UA[ 'IE9' ] ? 'text' : 'textContent',\r
wrapper, xml, v;\r
\r
switch( queryString ){\r
case 'number' :\r
return parseFloat( v );\r
case 'int' :\r
- return parseInt( v );\r
+ return parseFloat( v ) | 0;\r
case 'boolean' :\r
return v && v !== '0' && v !== 'false' && v !== 'null' && v !== 'undefined' && v !== 'NaN';\r
//case 'string' :\r
\r
for( i = 0, n = -1, l = xmlList.length; i < l; ++i ){\r
xml = xmlList[ i ];\r
- attr = elem.getAttribute( key, 2 );\r
+ attr = xml.getAttribute( key, 2 );\r
flag = attr != null;// && ( !useName || attr !== '' );\r
if( flag && op ){\r
//if( toLower ) attr = attr.toLowerCase();\r
};\r
return res;\r
};\r
+ /*\r
function XMLWrapper_funcSelectorProp( prop, flag, flags, xmlList ){\r
var res = [],\r
flag_not = flag ? flags.not : !flags.not,\r
if( xnode.getAttributeNode( prop ) ^ flag_not ) res[ ++n ] = xnode;\r
};\r
return res;\r
- };\r
+ }; */\r
\r
var XMLWrapper_filter = {\r
'first-child' : {\r
'nth-last-of-type' : {\r
m : function( flags, xmlList, a, b ){ return XMLWrapper_funcSelectorNth( 'lastChild', 'previousSibling', false, flags, xmlList, a, b ); }\r
},\r
- empty : {\r
+ 'empty' : {\r
m : function( flags, xmlList ){\r
var res = [],\r
flag_not = flags.not,\r
return res;\r
}\r
},\r
- contains : {\r
+ 'contains' : {\r
m : function( flags, xmlList, arg ){\r
var res = [],\r
flag_not = flags.not,\r
- i = 0, n = -1, xnode, text = '',\r
- // kquery\r
- attr_textContent = X_UA[ 'IE' ] < 9 || X_UA[ 'Opera' ] ? 'innerText' : X_UA[ 'IE9' ] ? 'text' : 'textContent';\r
+ i = 0, n = -1, xnode, text = '';\r
+\r
for( ; xnode = xmlList[ i ]; ++i ){\r
switch( xnode.nodeType ){\r
case 1 :\r
- text = xml.nodeType === 1 ? xml.innerText || xml.text || xml.textContent : xml.nodeValue;// xnode[ attr_textContent ];\r
+ text = xml.nodeType === 1 ? xml.innerText || xml.text || xml.textContent : xml.nodeValue;\r
break;\r
- case 2 :\r
+ //case 2 :\r
case 3 :\r
text = xnode.nodeValue;\r
break;\r
\r
var XMLListWrapper_0 = new XMLListWrapper();\r
\r
-XMLListWrapper.prototype.length = 0;\r
-XMLListWrapper.prototype._wraps = null;\r
-XMLListWrapper.prototype.has = XMLWrapper_has;\r
-XMLListWrapper.prototype.get = XMLWrapper_get;\r
-XMLListWrapper.prototype.val = XMLWrapper_val;\r
-XMLListWrapper.prototype.find = XMLWrapper_find;\r
+XMLListWrapper.prototype.length = 0;\r
+XMLListWrapper.prototype._wraps = null;\r
+XMLListWrapper.prototype[ 'has' ] = XMLWrapper_has;\r
+XMLListWrapper.prototype[ 'get' ] = XMLWrapper_get;\r
+XMLListWrapper.prototype[ 'val' ] = XMLWrapper_val;\r
+XMLListWrapper.prototype[ 'find' ] = XMLWrapper_find;\r