使用SAX解析XML
SAX(Simple API for XML简称SAX)事件是无状态的,也就是说,当接收到字符数据的事件后,并不知道该字符数据是哪一个元素的
内容。同样地,当收到元素开始的事件后,也无法知道该元素是否有父元素,是否有子元素,这是
SAX和DOM不同的地方。SAX解析器本身并不提供元素的上下文信息,所有相关信息的记录需要我们自
己编程去实现
SaxXml类加载XML数据流,(目前用字符串代替),建立解析工厂,生产SAX解析对象
import java.io.ByteArrayInputStream;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
public class SaxXml {
private SaxXml() {
}
SaxXml(String xmlFile) {
try{
String xmltest = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"
+"<home>"
+"<name>张三</name>"
+"<sex>男</sex>"
+"<age>20</age>"
+"</home>";
byte[] data1 = xml.getBytes();
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
SAXParser sax = factory.newSAXParser();
sax.parse(new ByteArrayInputStream(data1), XmlHandler.handler/*new XmlHandler()*/ );
} catch (ParserConfigurationException pce) {
System.out.println("Could not create that parser.");
System.out.println(pce.getMessage());
} catch (SAXException saxe) {
System.out.println("Problem wITh the SAX parser.");
System.out.println(saxe.getMessage());
} catch (Exception e) {
e.printStackTrace();
&n
相关文档:
var
xmlDoc
=
null
;
function
parseXML
(
xmlUrl
)
{
try
{
//IE
xmlDoc
=
new
ActiveXObject
(
"Microsoft.XMLDOM"
);
xmlDoc
.
async
=
false
;
xmlDoc
......
<?
XML DOM读取节点信息遇到问题总结:
1:NodeList: 使用节点的childNodes属性或者document对象的getElementsByTagName()方法,就会返回一个包含节点列表的NodeList
2: 在 XML DOM 中,节点的关系被定义为节点的属性:
· parentNode
· childNodes
· ......
AJAX (异步 JavaScript 和 XML) 是个新产生的术语,专为描述JavaScript的两项强大性能.这两项性
能在多年来一直被网络开发者所忽略,直到最近Gmail, Google suggest和google Maps的横空出世才使人
们开始意识到其重要性.
这两项被忽视的性能是:
* 无需重新装载整个页面便能向服务器发送请求.
* 对XML文档的解析和处理.
......
1,浅串行化:只串行化类的公共字段和属性
公共属性必须是可读且可写的
使用命名空间:using System.Xml.Serialization;
以Book类为例:
串行化模板:
public ......
最常见的XML数据类型有:Element, Attribute,Comment, Text.
Element, 指形如<Name>Tom<Name>的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
Attribute, 指在<Employee id=”12345”>中的粗体部分。
&nb ......