xml 学习1

前端之家收集整理的这篇文章主要介绍了xml 学习1前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一只纯菜鸟的角度....持续更新中。一如既往,求指教,求更正。

以前配置不少xml文件,比如:servlet中的web.xml(用来管理jsp中的动作和其对应的servlet;Structs中的strcuts-config.xml(关联表单和对应的action);Hibernate中的hibernate.cfg,xml(简单封装数据库连接;配置数据库中的表和实体类的对应),xx.hbm.xml(配置表和实体映射的关系)。一直把xml当成个“打酱油”的角色在用,直到最近专门学习xml,才知道xml其实也能逆袭。

XML简介:

百度百科说了一大篇,专业名称也说了不少,作为计算机专业的我yy地总结下:

Xml就是一种自己写的文档,只要符合一定的规范,就能在不同平台,不同软件间交换数据。

关于xml的解析:

为什么要解析?怎么解析?等研究后再写,先弄个简单实例入入门

趋势:

从发展趋势上讲json有边缘化xml的迹象,具体原因我也清楚,没有实践就没有发言权。大家可以赐教啊,老是我一个人独白.....

XML的一个超超简单实例:写了xml,并用dom进行解析.

本例在xml中存放个student信息,让后通过两种解析方式将学生信息打印在控制台。

这里我使用了外部DTD文档,先看看具体要求

1:根元素为students,下面至少有一个student

2student有必须的sid属性为主键,有可以省略的markup属性。引用sid的值

3student下有namesexagebirthdayaddressrelational元素

4name可以有first_namesecond_name元素

5sexvalue属性,只能是男或女

6birthdayyearmonthday子元素

7address可以出现多次,有属性city,默认为changsha

8relationaltype属性,固定为tel

------------------------DTD文件

<?xmlversion="1.0"encoding="UTF-8"?>

<!ELEMENTENTER_NAME_OF_ROOT_ELEMENT_HEREEMPTYstudents(student)+student(name,sexagebirthdayaddress+,95)">relational)name(first_name*,95)">second_name*)birthday(yearmonthday)>

first_name(#PCDATA)second_namesexageyearmonthdayaddressrelational<!ATTLISTstudentsidCDATA#requiredsexvalue(|)"男"addresscityCDATA"长沙"relationaltype#FIXED"tel">

------------------------------xml文件

<?xml@H_828_404@version="1.0"@H_828_404@encoding="UTF-8"?>

<!DOCTYPEstudentsSYSTEM"Students.dtd">

<studentsstudent@H_828_404@sid="1"namefirst_name>"ss"</second_name>"ssx"sex@H_828_404@value="男"/>

age>45birthdayyear>1899month>12day>4address@H_828_404@city="北京"relational@H_828_404@type="tel">hhssssdrelationalstudent>

---------------------解析文件

publicclassDomDemo{

staticvoidmain(String[]args){

//获得xml文件

FilexmlFile=newFile(

"F:\\SHH\\XML\\src\\cn\\bl\\test1\\Untitled2.xml");

//相对路径不行啊FilexmlFile=newFile("studens.xml");

//声明一个DocumentBuilder对象

DocumentBuilderbuilder=null;

//声明一个DocumnetBuilderFactory,并用单例模式创建

DocumentBuilderFactorybuilderFactory=DocumentBuilderFactory

.newInstance();

try{

builder=builderFactory.newDocumentBuilder();//获得默认的DocumnetBuilder

Documentdocument=builder.parse(xmlFile);//解析文件

Elementroot=document.getDocumentElement();//获得根元素

System.out.println("根元素:"+root.getNodeName());

NodeListchildNodes=root.getChildNodes();

//获得子节点

for(inti=0;i<childNodes.getLength();i++){

Nodenode=childNodes.item(i);

System.out.println(node.getTextContent().trim());

}

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

---------运行结果

根元素:students

"ss""ssx"451899124hhssssd

xml好像入门了,又好像一无所知。持续努力中.......待续

猜你在找的XML相关文章