Java-基础-6.Xml

一:为什么使用Xml?

1.目前有很多的写代码语言,java,scala,sql,py等等语言。也有很多的系统,例如苹果系统,安卓系统等。但是实际生产中,我们代码和数据,在各个平台和语言之间进行流动。如果我们想在流动的中间做一些操作,我们需要有一种共性的东西,在各个语言中都适用,在各个平台之间都能跑通。

二:什么是Xml?

  1. 是一种语言。
  2. xml与操作系统、编程语言的开发平台都无关。
  3. 实现不同系统之间的数据交互。

三:怎么使用Xml?

  1. 最基本的信息。
      (1)必须有XML声明语句 (第一行)。
      (2)必须有且仅有一个根元素。
      (3)标签成对。
      (4)元素正确嵌套 。
  2. 标签、元素、属性
      标签,在xml中使用<>,引起来的内容称作为标签。标签有开头有结尾,结尾多一个/。
      属性,属性为标签增添了一些信息,形式为 属性名=“属性值”。
      元素,标签开始和结尾为一个整体,统一称为元素。
  3. 注意点
      (1)特殊字符。
    在这里插入图片描述
      (2)CDATA
       PCDATA 是被解析的字符,CDATA是没有被解析的字符。CDATA具体使用如下:
<test>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</test>
  1. 约束。
    虽然xml非常灵活,但是我们在开发过程中,可以设定一些约束,来方便整个团队的开发。常见的约束有以下俩种。
      (1)DTD约束
        我们一般约束以下几点
         元素的定义规则
         元素之间的关系规则
         属性的定义规则
<!DOCTYPE 根元素 [元素声明]>
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE poem [
	<!ELEMENT poem (author,title,content)>
	<!ELEMENT author (#PCDATA)>
	<!ELEMENT title (#PCDATA)>
	<!ELEMENT content (#PCDATA)>
]>
<poem>
	<author>王维</author>
	<title>鹿柴</title>
	<content>空山不见人,但闻人语声。返景入深林,复照青苔上。</content>
</poem>

  (2)Schema约束
   如果DTD约束写的信息比较繁琐,那么我们使用Scahme进行约束。

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.myschema.com.cn"
xmlns="http://www.myschema.com.cn"
elementFormDefault="qualified">
	<xs:element name="person">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="xs:integer"/>
				<xs:element name="name" type="xs:string"/>
				<xs:element name="sex"  type="xs:string"/>
				<xs:element name="address" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
  1. 解析。
    DOM4J
    添加jar包
    在这里插入图片描述
	<?xml version="1.0" encoding="utf-8" ?>
	<students>
		<Student>
			<Name>张三</Name>
			<Num>2018001</Num>
			<Classes>0113</Classes>
			<Address>上海外国语</Address>
			<Tel>123456</Tel>
		</Student>
		<Student>
			<Name>王五</Name>
			<Num>2018002</Num>
			<Classes>0114</Classes>
			<Address>上海外国语</Address>
			<Tel>657432</Tel>
		</Student>
	</students>
public static void main(String[] args) throws Exception{
		SAXReader reader=new SAXReader();
		Document document=reader.read(newFile("src\\source.xml"));
		ElementrootElm=document.getRootElement();//获得根节点
		ElementmemberElm=rootElm.element("Student"); //获得子节点
		ElementageElm=memberElm.addElement("age");//添加子节点
		ageElm.setText("29");//设置节点文本
// 创建格式化类
		OutputFormat format =OutputFormat.createPrettyPrint();
// 设置编码格式,默认UTF-8
		format.setEncoding("UTF-8");
// 创建输出流,此处要使用Writer,需要指定输入编码格式,使用OutputStream则不用
		FileOutputStream fos = new FileOutputStream("src\\source.xml");
// 创建xml输出流
		XMLWriter writer = new XMLWriter(fos,format);
		writer.write(document);
		writer.close();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值