virtual int compare(const htmlayout::dom::element& r1, const htmlayout::dom::element& r2)
    {
      if( !r1.is_valid() || !r2.is_valid() )
        return 0;

      htmlayout::dom::element c1 = r1.child(column_no);
      htmlayout::dom::element c2 = r2.child(column_no);

	  json::string t1 = c1.text();
      json::string t2 = c2.text();
      return wcscmp(t1,t2);
    }
    virtual int compare(const htmlayout::dom::element& r1, const htmlayout::dom::element& r2)
    {
      if( !r1.is_valid() || !r2.is_valid() )
        return 0;

      htmlayout::dom::element c1 = r1.child(column_no);
      htmlayout::dom::element c2 = r2.child(column_no);

      const wchar_t* t1 = c1.text();
      const wchar_t* t2 = c2.text();
      if( !t1 || !t2 ) return 0;

      return wcscmp(t1,t2);
    }