先看看效果:
注:SDK使用的是 Sciter3 Beta SDK,代码可以通用。
HTML代码:
<!doctype html> <head> <meta charset="GB2312"> <title>test</title> </head> <body> <p>hello</p> <div class="add">你的手啊!</div> <br/>----<br/> </body> </html>
Win32 程序中的头文件:
#include "stdafx.h" #include "W32Test.h" #include "include/sciter-x.h" #include "include/sciter-x-dom.hpp" #pragma comment(lib,"sciter32.lib") #include <xstring> using namespace sciter;
增删改查部分代码:
case IDM_INSERT: //插入,增 { //获取根节点 dom::element root = dom::element::root_element(hWnd); //查找想要添加的位置节点,也可以直接向根部添加 dom::element div1 = root.find_first("div.add"); //第一种方式,创建节点 dom::element p = dom::element::create("a",L"0ads "); //设置节点参数 p.set_attribute("href",L"#"); //添加 div1.append(p); //第二种方式,直接改html std::string strHtm = "<a href='#'> 110zxy </a>"; //最后一个参数一定要设置好 div1.set_html((unsigned char*)strHtm.c_str(),strHtm.length(),SIH_APPEND_AFTER_LAST); } break; case IDM_DEL: //删除 { //获取根节点 dom::element root = dom::element::root_element(hWnd); //查找想要删除的位置节点 dom::element div1 = root.find_first("div.add"); div1.detach(); } break; case IDM_CHANGE: //改 { //获取根节点 dom::element root = dom::element::root_element(hWnd); //查找想要修改的位置节点 dom::element div1 = root.find_first("div.add"); div1.set_text(L"直接改变"); //还可以直接修改html内容 std::string strHtm = "<a href='#'> uuu </a>"; div1.set_html((unsigned char*)strHtm.c_str(),strHtm.length(),SIH_REPLACE_CONTENT); } break; case IDM_FIND: //查找 { //获取根节点 dom::element root = dom::element::root_element(hWnd); //根据标签和类名查找 dom::element div1 = root.find_first("div.add");//root.find_all()可用来查找所有的,以后再研究 //根据坐标点查找 POINT pt; pt.x = 100; pt.y = 100; div1 = root.find_element(hWnd,pt); //root.first_sibling(), 最近的相同姐弟元素 //root.find_nearest_parent(),筛选的最近的父类元素 } break;
By BBDXF