如何解析JQUERY 通过AJAX请求来的HTML数据?

zinking 2009-04-04
我希望能够使用XPATH这样的东西,这样保持代码的可维护性为最大

/**
* @author Woody
*/

$(document).ready(function() {

  

$.ajax({url: '/page/test.html',
            type: 'GET',
            dataType: 'html',
            timeout: 5000,
            error: function(){
alert('error');
            },
            success: function(data){

            var dom = $("div/p",data);   
$('#parse_result').append(dom);
            }
    });

HTML
<div>
    <p><a>test dom tree</a></p>
</div>

其实HTML还要长,但是为了简单测试起见先用了一个简单的HTML,有谁知道的一定要告诉我
我主要是想用JQUERY的XPATH来解析这段DOM
   
    
   
   


});

wcily123 2009-04-05
我来给你看看!
wcily123 2009-04-05
哈哈,貌似我找到了个办法!
不过不知道行不行?
wcily123 2009-04-05
        $.ajax({
                url:'/htmltest',
                type:'get',
                dataType:'xml',
                timeout:1000,
                error:function() {
                        alert("request error!");
                      },
                success:function(data) {
                    alert(data);
                         $(data).find("div").each(function() {
                             var text = $(this).text();
                             alert(text);
                         });
                }
         });



服务器端的!


    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {

        httpServletResponse.setContentType("text/xml;charset=utf-8");
        httpServletResponse.setHeader("Cache-Control","no-cache");
        PrintWriter out = httpServletResponse.getWriter();
        out.println("<div>");
        out.println("<p>test dom tree</p>");
        out.println("</div>");
        out.flush();
        out.close();
    }


貌似按照html的方式不好读,因为咱们一般读的html的dom 都是 document.get.....或 $("#id")什么的现在,Ajax返回的是一个对象好像没法那样用弄!
我一看是也是像像你说的那样读取找了好久都未果!
最后有仔细的看了看你的目的,就像到了这个方法!
其实也不算什么方法了 估计你以前一直在用!
首先,html和xml 两者差不多,从某种角度上讲是一样的!然后呢我就把它们两认为是一样的!所以呢。。然后呢。。。。你怎么读xml就怎么读html不就行了!
注意哦!httpServletResponse.setContentType("text/xml;charset=utf-8"); 要设一下这个! 

不知道我的办法怎么样!
zinking 2009-04-08
首先,当然要感谢你回帖
但是显然你没有分清题意,然后就全部是无用功了

HTML和XML显然是有很大差别的
再其次我要使用XPATH,你完全NEGELECT
bluky999 2009-04-10
说点我的想法!

1 不管是XML还是HTML还是XHTML,都是一种DOM结构,规范和严格程度不同而已;

2 对于ajax到的data, 只要是html或者比它更严格的,都可以使用JQ来直接处理,好比使用JQ来处理任何XHTML一样;


3 返回的数据不一定就要是server端动态输出哦,你给一个静态的html文件,也是一样的,可以做测试!

4 我有做过这样的应用; 就是吧3G多的业务数据全部处理成HTML格式的,然后使用AJAX带参数来请求,每次加载1M到客户端,然后对这1M的数据使用JQ和JS解析处理,实现用户交互!


  
bluky999 2009-04-10
晕  这里的编辑器不能自动换行啊????   
Acaleph 2009-04-12
建议在SERVER端将需要的数据封装成JSON格式数据,页面用JQ来构建DOM,(代码)具有更好的弹性。
chenhongquan 2009-04-13
支持Acaleph
waiting 2009-12-27
这个行不?
load(url, [data], [callback])
概述
载入远程 HTML 文件代码并插入至 DOM 中。

默认使用 GET 方式 - 传递附加参数时自动转换为 POST 方式。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 "url #some > selector"。请查看示例。
Global site tag (gtag.js) - Google Analytics