Changeset 21068

Show
Ignore:
Timestamp:
10/10/08 08:36:03 (3 months ago)
Author:
tokuhirom
Message:

added doc.getElementById

Location:
lang/cplusplus/llv8call/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/llv8call/trunk/ext/libxml/document.cc

    r21003 r21068  
    175175    xmlFree(result); 
    176176    return str; 
     177END 
     178 
     179FUNCTION(getElementById) 
     180    ARG_COUNT(1); 
     181    ARG_str(id, 0); 
     182    EXTERNAL_DOC(); 
     183    xmlAttrPtr attr = xmlGetID(doc, (const xmlChar*)*id); 
     184    if (!attr) { 
     185        return Undefined(); 
     186    } else if (attr->type == XML_ATTRIBUTE_NODE) { 
     187        return CREATE_ATTR(doc, attr->parent); 
     188    } else if (attr->type == XML_ELEMENT_NODE) { 
     189        return createObject("Element", doc, (xmlNodePtr)attr); 
     190    } else { 
     191        return Undefined(); 
     192    } 
    177193END 
    178194 
     
    199215    BIND_IM("createComment",          createComment); 
    200216    BIND_IM("toString",               toString); 
     217    BIND_IM("getElementById",         getElementById); 
    201218    BIND_IM("close",                  _close); 
    202219    INTERNALCOUNT(2); 
  • lang/cplusplus/llv8call/trunk/t/070_libxml/02_dom.js

    r21023 r21068  
    11require('t/util.js'); 
    22 
    3 plan({tests:44}); 
     3plan({tests:47}); 
    44 
    55check_lib("org.coderepos.libxml"); 
    66var libxml = org.coderepos.libxml; 
     7var parser = new libxml.Parser(); 
    78 
    89var doc; 
     
    168169}); 
    169170 
     171test(function () { 
     172    var doc = parser.parse_string( 
     173        "<!DOCTYPE foo [\n" + 
     174        "  <!ELEMENT foo ANY> \n" + 
     175        "  <!ELEMENT bar ANY> \n" + 
     176        "  <!ATTLIST bar id ID #REQUIRED>\n" + 
     177        "]>\n" + 
     178        "<foo>\n" + 
     179        "  <bar id='baz'/>\n" + 
     180        "</foo>\n" 
     181    ); 
     182    var m = doc.getElementById("baz"); 
     183    ok( m ); 
     184    is(m.nodeName(), "bar", "document.getElementById"); 
     185    is(doc.getElementById("noo"), undefined, 'getElementById'); 
     186}); 
     187 
    170188doc.close(); 
    171189 
  • lang/cplusplus/llv8call/trunk/t/070_libxml/03_parser.js

    r21067 r21068  
    11require('t/util.js'); 
    22 
    3 plan({tests:1}); 
     3plan({tests:2}); 
    44 
    55check_lib("org.coderepos.libxml");