Java基础_13 XML存储数据

XML

  1. 定义:可扩展的标记语言
    • 可扩展的:扩展性墙,语法上比较送
    • 标记:
  2. 语法
XML的文档声明:
<?xml version="1.0" encoding="UTF-8"?>
XML的注释:
<!-- 这里面就是注释 -->
XML的标签:
<hello>元素体</hello>		//元素体可写可不写,也可写其他标签
  1. 属性:attribute
<hello id ="001" age = "17">元素体</hello>	
  1. 转义字符
    • 需要转移的字符:
<!--
	< --- $lt;	小于
	> --- &gt;	大于
	" --- &quot;	双引号
	' --- &apos;	单引号
	& --- &amp		与
-->
  1. CDATA区
    • 需要大量转义字符时:
 <![CDATA[
 	正常java代码区
 ]]>
  1. XML的约束

    DTD约束

    • 在自己需要编写的XML中引入DTD约束文件
 <!DOCTYPE beans SYSTEM "bean.dtd">	//beans表示根标签

Schema约束—常用

  • 文档扩展名xsd

  • 在自己需要编写的XML中引入Schema约束文件

  • 命名空间

     targetName = "http://www.baidu.com/abc"
  //常用别名
  xml:a="http://www.baidu.com/abc"	//根标签下
  <a:table></a:table>

XML解析方式和解析开发包

  1. 解析方式
    • DOM:要求解析器把整个xml文件装载到内存,解析成一个document对象
      • 优点:元素与元素间保留结构关系,故可增删查改
      • 缺点:XML文档过大,可能出现内存溢出
    • SAX:逐行扫描文档,一边扫描一遍解析。并以事件驱动的方式进行解析
      • 优点:处理速度快,可处理大文件
      • 缺点:只能读,逐行读取后释放资源
  2. 解析开发包
    • 什么是Dom4J?
      Dom4j是一个简单、灵活的开源库,dom4j使用接口和抽象基类,Dom4j的API相对要复杂一些但比JDOM更好的灵活性。 Dom4j是完美支持Xpath,具有性能优异、功能强大和极易使用的特点。采用的Dom4j需下载dom4j相应的jar文件

    • 使用DOM4j解析XML包
      1. 把整个要解析的XML文件加载到内存
      2. 获取Document对象—read(File file)
      3. 获取根标签—beans,若根标签有属性用attributeValue(属性名)获取
      4. 获取根标签的子标签List集合,并遍历集合
      5. 输出属性后又遍历其子标签

//1.把整个要解析的XML文件加载到内存
SAXReader reader = new SAXReader();
//2.获取Document对象
Document document = reader.read("beans.xml");
//3.获取根标签---beans
Element rootElement = document.getRootElement();	//若根标签有属性用attributeValue(属性名)获取
//4.获取根标签的子标签
List<Element> rootSonElements = rootElement.elements();
//5.遍历根标签的子标签集合
for (Element rootSonElement : rootSonElements) {
	//6.获取子标签bean的属性
	String beanId = rootSonElement.attributeValue("id");
	String beanClassName = rootSonElement.attributeValue("className");
	//7.打印子标签bean的属性
	System.out.println(beanId+"->"+beanClassName);
	//8.获取bean标签的子标签
	List<Element> beanSonElements = rootSonElement.elements();
	//9.遍历bean子标签集合
	for (Element beanSonElement : beanSonElements) {
		//10.获取子标签property的属性
		String propertyName = beanSonElement.attributeValue("name");
		String propertyValue = beanSonElement.attributeValue("value");
		System.out.println(propertyName+"--->"+propertyValue);
	}
}

beans.xml文件内容

<?xml version="1.0" encoding="UTF-8"?>
<beans>
	<bean id="001" className="cn.itcast.demo.User">
		<property name="username" value="jack"></property>
		<property name="password" value="123"></property>
	</bean>

	<bean id="002" className="cn.itcast.demo.Admin">
		<property name="username" value="admin"></property>
		<property name="password" value="123321"></property>
	</bean>
</beans>

运行结果

001->cn.itcast.demo.User
username--->jack
password--->123
002->cn.itcast.demo.Admin
username--->admin
password--->123321
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值