Java的XML文件操作之DOM入门篇 (3)
2.DOM实例
有了上面的介绍,相信你对DOM理解的更多了吧。下面的例子将让你对DOM更加熟悉起来。
先说说这个例子到底要做的是什么吧,我们希望在一个名为link.xml文件中保存了一些URL地址,通过一个简单的程序,我们可以通过DOM把这些URL读出并显示出来,也可以反过来向这个XML文件中写入加入的URL地址。很简单,却很实用,也足够来例示DOM的绝大部分用法了。
XML文件本身不复杂,就不给出它的DTD了。link.xml:
JSP Insider
http://www.jspinsider.com
JSP Insider
2
1
2001
A JSP information site.
The makers of Java
http://java.sun.com
Sun Microsystems
3
1
2001
Sun Microsystem's website.
The standard JSP container
http://jakarta.apache.org
Apache Group
4
1
2001
Some great software.
第一个程序我们称为xmldisplay.java,具体的程序清单可以在附件中找到。主要的功能就是读取这个XML文件中各个节点的内容,然后在格式化输出在System.out上,我们来看看这个程序:
import javax.xml.parsers.*;
import org.w3c.dom.*;
这是引入必要的类,因为在这里使用的是Sun所提供的XML解析器,因而需要引入java.xml.parsers包,其中包含了有DOM解析器和SAX解析器的具体实现。org.w3c.dom包中定义了w3c所制定的DOM接口。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse("links.xml");
doc.normalize();
除了上面讲到的,还有一个小技巧,对Document对象调用normalize(),可以去掉XML文档中作为格式化内容的空白而映射在DOM树中的不必要的Text Node对象。否则你得到的DOM树可能并不如你所想象的那样。特别是在输出的时候,这个normalize()更为有用。
NodeList links =doc.getElementsByTagName("link");
刚才说过,XML文档中的空白符也会被作为对象映射在DOM树中。因而,直接调用Node方法的getChildNodes方法有时候会有些问题,有时不能够返回所期望的NodeList对象。解决的办法是使用Element的getElementByTagName(String),返回的NodeLise就是所期待的对象了。然后,可以用item()方法提取想要的元素。
for (int i=0;i
Element link=(Element) links.item(i);
System.out.print("Content: ");
System.out.println(link.getElementsByTagName("text").
相关文档:
一、前言
本文假定你有一定的J2EE开发经验,这个教程没有过多的涉及基础知识和开发细节。如果在阅读过程出有什么问题,还请与我联系交流。
如果使用GOOGLE、BAIDU等搜索工具,搜索WebService的相关知识,可以查到N多的网页,我就是通过这些网页的学习,逐渐掌握了些W ......
import java.io.IOException;
public class ResponseUI extends Thread{
private static volatile double d = 1;
public ResponseUI(){
super.setDaemon(true); //设置后台运行
start();
}
public void run(){
while(true){
d = d + (Math.E + Math.PI) / d;
}
}
/**
* @param args ......
TCP通过 ServerSocket 和 Socket 来实现传输
UDP主要通过 DatagramSocket 和 DatagramPacket 来完成传输
直接上代码
服务器端:
public class UdpServer
{
private DatagramSocket server;
private DatagramPacket packet;
private byte[] b;
private String str;
public UdpServer()
{
Init();
} ......
一,网络编程中两个主要的问题
一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。
在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。
而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对 ......
<Resource name="jdbc/testDB" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/testDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
< ......