[转]使用jquery解析xml使用Jquery解析XML:?$.ajax({??????url: ajax/test.xml,??????dataType : xml,?
[转]使用jquery解析xml
使用Jquery解析XML:?$.ajax({
??????url: 'ajax/test.xml',
??????dataType : 'xml',
??????cache: false,???????success: function(xml)?{
????????????$("AUTHOR", xml).each(function(id) {
?????????????????AUTHOR?= $("AUTHOR", xml).get(id);
?????????????????alert($("FIRSTNAME",?AUTHOR).text());
?????????????????alert($("LASTNAME",?AUTHOR).text());
????????????});
??????}?});以上方式:IE7无法通过,Firefox可以运行。可以使用以下方式来获取XML节点内容:?$.ajax({
??????url: 'ajax/test.xml',
??????dataType : 'xml',
??????cache: false,???????success: function(xml)?{
????????????$("AUTHOR", xml).each(function(id) {
?????????????????//AUTHOR = $("AUTHOR", xml).get(id);
?????????????????alert($(this).children("FIRSTNAME").text());
?????????????????alert($(this).children("LASTNAME").text());
????????????});
??????}?});??
1,Content-Type很多时候无法解析就是Content-Type的问题。(呵呵,我第一次做ajax的时候,就遇到这个问题.)
一定要将其设置为text/xml,否则默认就是text/html也就是普通的文本了。
常见语言的Content-Type设置
CODE:
header("Content-Type:text/xml");????//php
response.ContentType="text/xml"???//asp
response.setHeader("ContentType","text/xml");??//jsp???(我上次这没写,结果返回 是一个 "" )
2,xml结构。XML一定要封闭的,很重要! (这个我一般不会范,我还是算比较细心的.)
例:
错误的XML
Xml代码?
![使用jquery解析xml [转]施用jquery解析xml](//img.reader8.net/uploadfile/jiaocheng/2014015/1445/201401140045328075.gif)
- CODE: ??
- <?xml?version="1.0"?encoding="UTF-8"?>??
- ????????<name>zhangsan</name>??
- ????????<id>1</id>??
- ????????<name>lisi</name>??
- ????????<id>2</id>??
- ??
- 正确的??
- CODE: ??
- <?xml?version="1.0"?encoding="UTF-8"?>??
- <stulist>??
- ????????<student??email="1@1.com">?????
- ????????????????<name>zhangsan</name>????
- ????????????????<id>1</id>??
- ????????</student>??
- ????????<student??email="2@2.com">??
- ???????????????<name>lisi</name>??
- ????????????????<id>2</id>??
- ????????</student>??
- </stulist>??
3,解析
遍历student(这里还是用上面那个XML,子节点是student)
CODE:
Js代码?
![使用jquery解析xml [转]施用jquery解析xml](//img.reader8.net/uploadfile/jiaocheng/2014015/1445/201401140045328075.gif)
- $.ajax({ ??
- ????url:'ajax.jsp', ??
- ????type:?'GET', ??
- ????dataType:?'xml', ??
- ????timeout:?1000, ??
- ????error:?function(xml){ ??
- ????????alert('Error?loading?XML?document'+xml); ??
- ????}, ??
- ????success:?function(xml){ ??
- ????????$(xml).find("student").each(function(i){ ??
- ????????????var?id=$(this).children("id");???//取对象???
- ????????????var?idvalue=$(this).children("id").text();??//取文本?或者?$("id"?,?xml).text();???
- ????????????alert(id_value);//这里就是ID的值了。???
- ????????????alert($(this).attr("email"));?//这里能显示student下的email属性。???
- ????????????$('<li></li>').html(id_value).appendTo('ol'); ??
- ????????}); ??
- ????} ??
- });??
- $.ajax({ ??
- ????url:'ajax.jsp', ??
- ????type:?'GET', ??
- ????dataType:?'xml', ??
- ????timeout:?1000, ??
- ????error:?function(xml){ ??
- ????????alert('Error?loading?XML?document'+xml); ??
- ????}, ??
- ????success:?function(xml){ ??
- ????????$(xml).find("student").each(function(i){ ??
- ????????????var?id=$(this).children("id");???//取对象???
- ????????????var?idvalue=$(this).children("id").text();??//取文本?或者?$("id"?,?xml).text();????
- ????????????alert(id_value);//这里就是ID的值了。???
- ????????????alert($(this).attr("email"));?//这里能显示student下的email属性。???
- ????????????$('<li></li>').html(id_value).appendTo('ol'); ??
- ????????}); ??
- ????} ??
- });?
------------------------------------分割线--------------------------------------
<packet version="1.0.0"><status>success</status><data><item><id>4b6a3c233b4cb</id><count_view>41</count_view><updated>2010-03-04 17:08:28</updated></item></data></packet>
?用jquery解析如下:
function(xml) {var val=$(xml).find("data>item>count_view").text();alert(val);
?
?