到最后我才发现微软给的ajax json 实例都是有问题的,很多都是不严密的,特别是对于大小写方面,他们都没有仔细追究大小写问题,导致了在firefox使用有问题。下面是实例内用:两个html之间的:
<head> <title>测试ajax</title> <meta http-equiv=”Content-Type” content=”text/html;charset=utf-8″ />
<script type=”text/javascript”>
var xmlHttp=null;
function creatXMLhttp()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject(”Microsoft.XMLhttp”);
}
else
{
xmlHttp=new XMLHttpRequest();
  ......
到最后我才发现微软给的ajax json 实例都是有问题的,很多都是不严密的,特别是对于大小写方面,他们都没有仔细追究大小写问题,导致了在firefox使用有问题。下面是实例内用:两个html之间的:
<head> <title>测试ajax</title> <meta http-equiv=”Content-Type” content=”text/html;charset=utf-8″ />
<script type=”text/javascript”>
var xmlHttp=null;
function creatXMLhttp()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject(”Microsoft.XMLhttp”);
}
else
{
xmlHttp=new XMLHttpRequest();
  ......
绪论
Libxml是一个有免费许可的用于处理XML、可以轻松跨越多个平台的C语言库。Libxml实现了读、创建及操纵XML数据功能。
这个指南基于一个简单的XML应用。
数据类型
Libxml 定义了许多数据类型,它隐藏了杂乱的来源以致你不必处理它除非你有特定的需要。xmlChar 替代char,使用UTF-8编码的一字节字符串。如果你的数据使用其它编码,它必须被转换到UTF-8才能使用libxml的函数。在libxml编码支持WEB页面有更多关于编码的有用信息。
XmlDoc 包含由解析文档建立的树结构,xmlDocPtr是指向这个结构的指针。
xmlNodePtr and xmlNode 包含单一结点的结构xmlNodePtr是指向这个结构的指针,它被用于遍历文档树。
解析文档
解析文档时仅仅需要文件名并只调用一个函数,并有错误检查。
①xmlDocPtr doc;
②xmlNodePtr cur;
③doc = xmlParseFile(docname);
④if (doc == NULL ) {
fprintf(stderr,"Document not parsed successfully. \n");
return;
}
⑤cur = xmlDocGetRootElement(doc);
⑥if (cur == NULL) {
fprintf(stderr,"empty document\n");
xmlFreeDoc(doc);
return;
}
⑦if (xmlStrcmp(cur->name, (const x ......
一、Libxml2介绍:
Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOsX等平台上运行。功能还是相当强大的,相信满足一般用户需求没有任何问题。
二、 Libxml2安装:
一般如果在安装系统的时候选中了所有开发库和开发工具的话(Fedora Core系列下),应该不用安装,下面介绍一下手动安装:
1) 从xmlsoft站点或ftp(ftp.xmlsoft.org)站点下载libxml压缩包(libxml2-xxxx.tar.gz)
2) 对压缩包进行解压缩
tar xvzf libxml2-xxxx.tar.gz
3) 进入解压缩后的文件夹中运行
./configure
make
make install
安装完成后就可以使用简单的代码解析XML文件,包括本地和远程的文件,但是在编码上有一些问题。Libxml默认只支持UTF-8的编码,无论输入输出都是UTF-8,所以如果你解析完一个XML得到的结果都是UTF-8的,如果需要输出GB2312或 ......
今日继续学习Android中使用Pull的XML解析技术实现对XML文件的解析和创建。由于明天休息,时间比较充裕,所以我也将昨天未总结的SAX解析技术在此做个总结。
一、SAX解析技术
Sax使用的是事件驱动的流式解析技术。事件驱动的流式解析方式是,从文件的开始顺序解析到文档的结束,不可暂停或倒退。当解析到文档的开始或结束、元素的开始或结束等都会触发一个事件,我们在事件处理方法中完成对数据的操作。由此可见,我们需要编写实现了事件接口的类。
1.创建Android工程(eclipse3.5):
Project name:AndroidXML
BuildTarget:Android2.1
Application name:Android XML 解析技术
Package name:com.changcheng.androidxml
Create Activity:AndroidXML
Min SDK Version:7
2.需要解析的XML文件:
"1.0" encoding="UTF-8"?>
"23">
C++ Primer 4
78
"20">
Think in Java
76
该文件存放于src源码目录。
3.XML文件对应的实体Book:
package com.changcheng.androidxml.entity;
public class Book {
private int id;
private String name;
private float price;
public Book() {
}
public Book(int id, String name, float price) {
this.id = id;
t ......
declare @x xml
set @x='
<ROOT>
<SM>
<SMID>88</SMID>
<SMCD>A5</SMCD>
<SMNM>刘洋</SMNM>
<NDS>
<ND>
<SF>3</SF>
<NDID>88</NDID>
<NDCD>A5</NDCD>
<NDNM>林林</NDNM>
<CDST>
<tR1>1</tR1>
<tR2>2</tR2>
<tR3>3</tR3>
<tR4>4</tR4>
<tR5>5</tR5>
<tR6>6</tR6>
<tR7>7</tR7>
<tR8>8</tR8>
<tR9>9</tR9>
<tt2>1</tt2>
<tt130>2</tt130>
<t132>3</t132>
<t155>4</t155>
</CDST>
</ND>
</NDS>
</SM>
<SM>
<SMID>84</SMID>
<SMCD>A6</SMCD>
<SMNM> ......
解决了,是1楼说的方法,不能写成
context.Response.ContentType = "xml";
必须要是
context.Response.ContentType = "text/xml";
就OK了~
实例:
Response.ContentType = "text/xml";
Page.Response.Write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
Page.Response.Write("<data>");
Page.Response.Write("<pets>");
Page.Response.Write("<pet>猫</pet>");
Page.Response.Write("<pet>狗</pet>");
Page.Response.Write("<pet>鱼</pet>");
Page.Response.Write("</pets>");
&n ......