XML(可扩展标记语言)简介,以及用Java StAX进行读写
来源:互联网 发布:科比历年数据 编辑:程序博客网 时间:2024/05/29 07:16
1. XML 与 HTML 的区别:
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
HTML中有许多没有关闭的标签,但是XML中的标签都是关闭的
2. XML 的元素可以包含子元素、属性以及文本内容。
我们保存的数据可以用子元素或者属性的方式来表示,例如:
表示方法一:
<note date="08/08/2008"><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
表示方法二:
<note><date>08/08/2008</date><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
表示方法三:
<note><date> <day>08</day> <month>08</month> <year>2008</year></date><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
因使用属性而引起的一些问题:
- 属性无法包含多重的值(元素可以)
- 属性无法描述树结构(元素可以)
- 属性不易扩展(为未来的变化)
- 属性难以阅读和维护
3. 形式良好的XML文档必须包含以下信息:
- XML 文档必须有根元素
- XML 文档必须有关闭标签
- XML 标签对大小写敏感
- XML 元素必须被正确的嵌套
- XML 属性必须加引号
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
4. StAX示例:
用StAX写XML文档示例:
package XML;import java.io.File;import java.io.FileWriter;import java.io.IOException;import javax.xml.stream.XMLOutputFactory;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamWriter;public class XMLWriterTest {public void testWriter(){try{XMLOutputFactory outputFactory=XMLOutputFactory.newInstance();FileWriter output = new FileWriter(new File("/usr/local/workspace/aaa.xml"));XMLStreamWriter xmlWriter = outputFactory.createXMLStreamWriter(output);xmlWriter.writeStartDocument("UTF-8","1.0");xmlWriter.writeComment("This is the configuration file for online check memory cache");xmlWriter.writeStartElement("Memory");xmlWriter.writeAttribute("address", "10.197.32.159");xmlWriter.writeAttribute("port", "12345");xmlWriter.writeCData("fffff");xmlWriter.writeCharacters("eeeeee");xmlWriter.writeEndElement();xmlWriter.writeEndDocument();xmlWriter.flush();xmlWriter.close();} catch (XMLStreamException ex){} catch (IOException ex) {}}public static void main(String[] args){XMLWriterTest test = new XMLWriterTest();test.testWriter();}}
用StAX读XML文档示例:
package XML;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import javax.xml.stream.XMLInputFactory;import javax.xml.stream.XMLStreamConstants;import javax.xml.stream.XMLStreamException;import javax.xml.stream.XMLStreamReader;public class XMLReaderTest {public void testWriter(){try{XMLInputFactory inputFactory = XMLInputFactory.newInstance();InputStream input = new FileInputStream(new File("/usr/local/workspace/aaa.xml"));XMLStreamReader xmlStreamReader = inputFactory.createXMLStreamReader(input);int event = xmlStreamReader.getEventType();while(true){switch(event){case XMLStreamConstants.START_DOCUMENT:System.out.println("Start document");break;case XMLStreamConstants.START_ELEMENT:System.out.println("Start Element: " + xmlStreamReader.getName()); for(int i = 0, n = xmlStreamReader.getAttributeCount(); i < n; ++i) System.out.println("Attribute: " + xmlStreamReader.getAttributeName(i) + "=" + xmlStreamReader.getAttributeValue(i)); break; case XMLStreamConstants.END_ELEMENT: System.out.println("End Element:" + xmlStreamReader.getName()); break; case XMLStreamConstants.END_DOCUMENT: System.out.println("End Document."); break; }if (!xmlStreamReader.hasNext()) break; event = xmlStreamReader.next(); }xmlStreamReader.close();} catch (XMLStreamException ex){} catch (IOException ex) {} finally {}}public static void main(String[] args){XMLReaderTest test = new XMLReaderTest();test.testWriter();}}
其中,XMLStreamConstants的事件类型内容可以包括:
- XML(可扩展标记语言)简介,以及用Java StAX进行读写
- 可扩展标记语言XML()
- XML可扩展标记语言
- XML(可扩展标记语言)
- xml-可扩展标记语言
- XML可扩展标记语言
- XML -可扩展标记语言
- XML 可扩展标记语言
- xml可扩展标记语言
- 标记语言(ml) 可扩展标记语言 (xml) 以及xml的两种类型介绍
- [置顶]XML 概述 (可扩展标记语言)
- 可扩展标记语言XML(Extensible Markup Language)
- 了解可扩展标记语言 (XML)
- xml编程----可扩展标记语言
- XML(可扩展标记语言)---Schema
- XML可扩展标记型语言
- 可扩展的标记语言XML
- XML可扩展标记语言总结
- final用法
- 【专辑】单调队列+斜率优化的DP
- 编译器如何C++的函数重载
- 对等网络中主流分布式哈希算法比较分析[收集]
- Subversion作为windows系统服务自启动
- XML(可扩展标记语言)简介,以及用Java StAX进行读写
- Linux头文件作用
- 集群、分布式你想好怎么用了吗?
- viewpager 实现左右滑动
- 动手做rom
- eclipse 启动tomcat问题
- 利用JOOR简单编写java的反射
- Android AIDL
- java 对比两个属性文件的key