日期:2014-05-17  浏览次数:20611 次

html对象表达式(html object expression)例子
  完整表达式例子:

  {@body}:text              获取body所有内容
  {#id:hello}:text          获取id为hello的内容
  {#class:hello}:attr(src)  获取class为hello的src属性

  {#id:yes>@a(3)}:text      获取id为yes下的第三个a标签的文本
  {@div(1)}:attr(id)        获取第一个div标签的id

  {#id:one>#id:two}:text    获取id为one 下的id为two的所有内容
  {#id:one>#id:two<#id:three}:text    获取id为one 下的id为two 上的id为three的所有内容

  {@div}:attr(id)           获取所有div标签的id,返回一个列表
  {#id:me,#id:you}:text     获取id为me和id为you的内容,返回一个列表

  -{#id:shit}               删除id为shit的整个标签,没有找到这个id则返回-1
  -{#id:shit}:text          删除id为shit的文本内容,保留标签,没有找到这个id则返回-1
  -{#id:shit}:attr(title)   删除id为shit标签的title属性,没有找到这个id则返回-1

  +{#id:shit}:text[123]     给id为shit的标签添加内容为123的文本,没有找到这个id则返回-1,默认为底部
  +{#id:shit}:text[base64(MTIz)]  给id为shit的标签添加base64编码后的内容,这个内容会自动解码

  {#id:shit}:attr(alt)[test] 把id为shit的alt属性内容重新设置为 test,如果没有这个属性,会自动添加
  {#id:shit}:text[123]       把id为shit的内容设置为123,例如<div id="shit">111</div>,执行后为<div id="shit">123</div>

  这种样式 class="first last",把空格使用&代替 {#class:first&last}

?

执行一个字符串例如:

HtmlOE htmloe(html数据字符串);

htmloe.exec("-{@div}"); //删除所有的div

htmloe.exec("-{!}"); ? ? ? //删除所有的注释

string strData = htmloe.exec("{#class:haha}:text"); ? ? ? //得到class属性为haha标签的内容

string strNewHtml = htmloe.getHtml();??? //得到修改之后的html数据

?

只需要从一个字符串读取html数据,然后可以进行操作,其中html解析完全在内部执行

?