【问题标题】:JQuery xml/xhtml processingJQuery xml/xhtml 处理
【发布时间】:2010-11-20 00:40:49
【问题描述】:

使用 JQuery 我将 Ajax GET 发送到 Web 服务器。 Web 服务器正在回复这样的 xml 块;

这里有一些回应 响应> 这里有一些回应 响应> 响应>

jQuery get 看起来像这样;

jQuery.get(name,parms,function(data){xmlProcess(data);});

xmlProcess函数是这样的;

函数 xmlProcess(数据){ jQuery('response',data).each(function(i){ t = 什么? }); }

我的问题是从服务器发回的东西,在“这里的一些响应”部分是 xhtml。所以我可以使用 as xml 之类的东西访问它

t = jQuery(this).find("div").attr("id");

但我真正想要的是“这里的一些响应”部分作为文本,即作为字符串。所以字符串可以包含,例如;

你好

【问题讨论】:

  • @Bruce - 这里的任何答案都解决了你的问题吗?

标签: jquery xml xhtml


【解决方案1】:

如果你想要它作为文本,那么编写 XML 使其成为文本。

即将< 用于

【讨论】:

  • 是的,这是可能的。在某些情况下,尽管我可能无法控制服务器,所以我仍然对客户端答案感兴趣。但是,如果我没有成功,则可以在服务器端对文本进行编码。谢谢。
【解决方案2】:

如果我对问题的理解正确,您可以将响应对象转换为这样的字符串:

jQuery.get(name,parms,function(data){
    //for IE 
    if (window.ActiveXObject) {
        var string = data.xml;
        alert(string);
    }
    // code for Mozilla, Firefox, Opera, etc.
    else {
       var string = (new XMLSerializer()).serializeToString(data);
       alert(string);
    }
});

【讨论】:

  • 这很接近了,我想分别序列化每个响应元素,上面序列化整个响应。但我正在沿着这些方向进行更多研究。
  • @Bruce - 所以使用上面的方法来序列化每个节点 - 我会编辑答案。
  • @Karim79,我首先尝试过。如 var string = (new XMLSerializer()).serializeToString(i);但它会吐出一个错误,因为我是一个元素对象,而不是一个 XML 对象。
  • @布鲁斯,我明白了。我正在调查此事,我会尽快回复您。
  • @Karim79 - 不,那是不准确的。它吐出错误,因为 i 不是元素。我添加了“ t = jQuery("response",data).get(i); 然后 string = (new XMLSerializer()).serializeToString(t); 我得到了元素的 XML。现在我需要做的就是稍微改进一下,以便我得到元素的 contents,不包括元素边界本身。谢谢!
【解决方案3】:

每个元素都应该有一个“innerHTML”属性。如果这不起作用,请尝试对元素使用 toString() 方法。

【讨论】:

    【解决方案4】:

    这实际上可以非常简单地完成,jquery 的 .text() 方法将所选标记之间的所有内容作为字符串检索,这似乎是您想要的: t = $(this).text(); alert(t); 你不应该把

    玩得开心,祝你好运,如果你取得好成绩,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      相关资源
      最近更新 更多