关于xml利用java语言进行读取

通过学习,我先自己写了一个dtd
什么是dtd呢,不懂的同学可以自己百度,我这里也就简单说明一下。
dtd就是一个约束xml书写内容的文档。
比如xml里存学生的信息,dtd就告诉你xml里应该存放一些什么数据,格式是什么,应该怎么放。

以下便是我照着教材写(实际上是copy啦)下来的一个简单的dtd.里面约束了xml里应该包括学生集合,每一个学生集合(studens)里的每一个学生(student)包含的子元素有name、age、sex。然后student还有一个属性,名字叫number,它是标识student的关键,是不可重复的
(注意,这个DTD的文件名是DT.dtd)







之后我写了一个xml。随便写了2个人。



//上面这句话是说该xml是按照DT.dtd来写的


tom
19
male


lisa
20
female


之后就可以欢快的在Java文件里码代码啦
不过在利用java读取xml里的数据时,要明确java取出xml数据分4步

1.首先建立工厂解析器

2.利用工厂解析器建立解析器

3.利用解析器获取document对象

4.操作document对象去输出xml的内容

java代码如下:

package xml;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class xmjava {
    public static void main(String[] args) throws ParserConfigurationException, Exception, Exception {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    //创建工厂解析器
    DocumentBuilder db = dbf.newDocumentBuilder();
//利用工厂创造一个解析器
Document doc = db.parse("src\\xml\\xmlxx.xml");
//通过解析器获得document对象
NodeList list = doc.getElementsByTagName("name");
//获得节点名字获取节点内容
Node name=list.item(0);
//只能用item获得序号节点
System.out.println(name.getTextContent());
//取得节点里的内容~
}
}

注意,在写解析器的时候,无论是创建解析器工厂还是解析器,eclipse总会报错,你就按照系统提示点击抛出错误就行了,系统就会自动在main函数上面添加抛出异常。这就没关系了。

然后记得在获取节点序号的时候,是用item方法,取得节点里的内容的时候,要根据你取出来的东西换方法。此处我取出来的是文本内容,因此用的是getTextContent()方法。

好了希望能帮到大家一点点。

另外,我在弄这个的时候也并非一帆风顺,一开始我的dtd文件不是这么写的,在网上搜索到的dtd的格式有些不太对,按照我上面写的这种格式就没错了。

然后在xml文件里导入dtd说明的时候,一定要注意导入的文件名不要写错。

在Java文件中,千万记得获取document对象时,那个parse里的路径是从src开始的,前面不要加点。只要把xml文件properties里的那个路径从src开始全部复制下来就ok了。

祝大家学习愉快~

可能写的东西有些低端,但是只要在进步就好啦!(^▽^)!

你可能感兴趣的:(xml学习)