dom4j⽣成xml_JAVA中XML的⽣成和解析
Xml
XML就是可扩展标记语⾔。【是⼀种简单的数据存储语⾔】
前⾯我们学习的HTML也是⼀种标记语⾔。
HTML--超⽂本标记语⾔---制作⽹页---提供⼀组静态的标记元素,⽆法扩展。
XML--可扩展标记语⾔--是⼀种简单的数据存储语⾔--没有固定的标记元素,在使⽤的时候可以根据⾃⼰的需要创造⼀个。
XML的⽂件规则:
1.可以在可扩展标记语⾔⽂件的内容包括⼏乎所有的万国码Unicode字符,元素和属性的名称也可以由⾮ascii字符组成;
2.标签由包围在⼀个⼩于号(<)和⼀个⼤于号(>)之间的⽂本组成,例如<;标记>;
3.起始标签(外国语:starttag)表⽰⼀个特定区域的开始,例如<;起始>;
4.结束标签(外国语:end tag)定义了⼀个区域的结束,除了在⼩于号之后紧跟着⼀个斜线(/)外,和起始标签基本⼀样,例如结束>;
5.标准通⽤标记语⾔还定义了标签的特性“属性”,它们是定义在⼩于号和⼤于号之间的值,例如<;图⽚ 源="我的靓照.jpg">中的“源”特性。
...........
⼀个简单的XML⽂件格式
<?xml version="1.0"  encoding=”utf-8”?>
”1001”>
zhangsan
23
”1002”>
lisi
24
在上⾯的xml⽂件中
<?xml version="1.0"  encoding=”utf-8”?>  --⽂件头
/---根元素 【不能省略】
/-----⼦元素,可以有多个,也可以只有⼀个
/,/,/--⼦⼦元素【孙⼦元素】
id=”1001”---属性 ,出现在开始标记中,可以有多个。
Zhangsan、23、男---⽂本元素【真实的被xml存储起来的数据】
所有的元素都是成对出现。
XML与java对象之间的联系
XML---数据存储----标记
java对象----数据存储---变量
1.Java对象可以转成XML⽂件---XML⽂件的⽣成
例如:
Public  class  Person{
Private  int  perid;
Priavte  String pername;
Private  String peraddress;
.........getXXXX()、setXXXX()
.............
}
创建⼀个Person1对象
Person  person1=new  Person();
Person1.setPerid(1001);
Person1.setPername(“zhangsan”);
Person1.setPeraddress(“西安”);
java xml是什么将上⾯的Person1对象转换成XML⽂件
<?xml version="1.0"  encoding=”utf-8”?>
”1001”>
zhangsan
西安
以上我们是将⼀个java对象做成XML⽂件,如有多个person对象,⽣成的xml⽂件是什么样⼦的?//⼀个Person1对象
Person  person1=new  Person();
Person1.setPerid(1001);
Person1.setPername(“zhangsan”);
Person1.setPeraddress(“西安”);
//⼀个Person2对象
Person  person2=new  Person();
Person2.setPerid(1002);
Person2.setPername(“lisi”);
Person2.setPeraddress(“西安”);
//⼀个Person3对象
Person  person3=new  Person();
Person3.setPerid(1003);
Person3.setPername(“wangwu”);
Person3.setPeraddress(“西安”);
/
/将上⾯三个Person类对象保存到数组/集合中Person  perarray[]={person1,person2,person3} List personlist=new ArrayList();
Personlist.add(person1);
Personlist.add(person2);
personlist.add(person3);
将包含有三个person对象的数组/集合转换成XML⽂件<?xml version="1.0"  encoding=”utf-8”?>
”1001”>
zhangsan
西安
”1002”>
lisi
西安
”1003”>
wangwu
西安
XML⽂件的⽣成
⼀、Dom⽣成
package st;
import java.io.File;
import java.util.List;
l.parsers.DocumentBuilder;
l.parsers.DocumentBuilderFactory; l.transform.OutputKeys;
l.transform.Transformer;
l.transform.TransformerFactory; l.transform.dom.DOMSource; l.transform.stream.StreamResult; import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.clic369.bean.Person;
import com.clic369.util.XMHelper;
public class CreateXML {
/**
* 测试Dom⽣成XML
* @throws Exception
*/
@Test
public  void  testCreateDomXML()throws  Exception{
//得到需要的数据
List  personlist= PersonData();
/
/得到DOM解析器⼯⼚
DocumentBuilderFactory wInstance(); //从解析器⼯⼚的解析器
DocumentBuilder  wDocumentBuilder();
//得到Document对象
Document  document= wDocument();
// 不显⽰standalone="no"
document.setXmlStandalone(true);
//创建根据元素
Element  rootElement = ateElement("persons");
for(Person  per:personlist){
//创建⼦元素
Element  personElement = ateElement("person");
//为⼦元素添加属性
personElement.setAttribute("perid",String.Perid()));
//创建name⼦⼦元素
Element  pernameElement = ateElement("pername");
//为⼦⼦元素设置⽂本数据
pernameElement.Pername());
//创建age⼦⼦元素
Element  perageElement = ateElement("perage");
//为⼦⼦元素设置⽂本数据
perageElement.setTextContent(String.Perage()));
/
/创建address⼦⼦元素
Element  peraddressElement = ateElement("peraddress");
//为⼦⼦元素设置⽂本数据
peraddressElement.Peraddress());

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。