20170906 - XML基础 - A
Posted 清及
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20170906 - XML基础 - A相关的知识,希望对你有一定的参考价值。
1 xml一般用于?
网站数据配置信息存储于单独文件中,便于修改。
2 html文本如何转义?
&....;
如&"
3 如何免转义符号,如在网页中显示一大段的html代码?
<![CDATA[
下面是xml代码:
<a>fdsafdsa</a>
]]>
4 XML何时可以定义成标签,何时定义成属性?是否可以随意定义标签名?
一般情况下,标签信息用属性定义,如上级标签无信息可用标签定义。
<list>
<emp>
<id></id>
<name></name>
<age></age>
<gender></gender>
<salary></salary>
</emp>
</list>
==等同于
<emp id="1" name="张三" age="21" gender="man" salary="30000">
可以
5 XML格式为?
<?xml version="1.0" encoding="UTF-8"?>
标签
标签
标签
6 XML有什么解析方式?优缺点是什么?
DOM,SAX
DOM,读取后生成的是树形结构文档对象,可修改,速度相对慢
SAX,单节点
7 如何在maven项目导入jar包?
pom.xml dependencies add 搜索 选择目标项目 选择jar包 ctrl+
8 提醒空指针错误有可能是?
在构造中初始化变量时,声明后便成为了方法中的局部变量。
ServerSocket server = new ServerSocket(8088);
server = new ServerSocket(8088);
9 写了新功能后却没有显现应有效果,有可能是什么原因?
没有在(主方法中)调用。
10 br.readLine();后却没有输出可能是什么原因?
没有syso。
11 如何解析XML文档?
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileInputStream("emplist.xml"));
12 如何获取XML文档根元素(文档树)?
Element root = doc.getRootElement();
13 如何获取元素的名字,属性,子项,文本?
先获取元素,再获取元素的各项属性,输出属性值需要用getText(),且该层元素只能获取到下一层元素。
获取元素:Element nameEle = empEle.element("name");
获取元素属性:Attribute idValue = empEle.attribute("id");输出:String id = idValue.getText();System.out.println(id); / 或直接:empEle.AttributeValue(id)
获取文本:getText()
Element表示一个XML文档中的一个元素(标签)
它提供了获取该元素相关信息的方法:
String getName()
获取当前元素的名字
Element element(String name)
获取当前元素中制定名字的子元素
list.element("emp")
List elements()
获取当前元素中的所有子元素
list.elements()
List elements(String name)
该元素下所有的同名元素,包含子子元素中同名的
list.elements(emp)
String getText()
获取当前元素中的文本(开始标签和结束标签中间的文本信息)
Attribute attribute(String name)
获取当前元素中制定名字的属性
14 如何统一输出各项属性?
将信息存储入对象的属性中,定义类的toString方法,最后循环输出实例。
Emp(String id,String name,int age,String gender,String salary){
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.salary = salary;
}
Emp emp = new Emp(id,name,age,gender,salary);
System.out.println(emp);
16 添加元素文本时需注意什么?
仅能添加字符串,因此必须做转型。
Element ageEle = empEle.addElement("age");
nameEle.addText(Integer.toString(emp.getAge()));
或者
nameEle.addText(emp.getAge()+"");
17 如何一键格式化代码?
ctrl shift f
18 如何格式化输出XML代码?
XMLWriter writer = new XMLWriter(fos,OutputFormat.createPrettyPrint());
19 如何使用XPath获取 名为title所有标签,第一个名为title的标签,第一个名为title的标签的name属性,
获取标签无修饰
20 如何限制条件?或者用什么表示?
bookstore//title[lang]
bookstore//book[price > 35]
String xpath = "/list/emp[salary > 4000 or gender = ‘女‘]/name";
20 应如何进行错误处理?
按照出现顺序处理。
——————
需掌握的:
①直接在xml文件上配置相关信息
②读取xml文件(存入类,循环类)
③通过代码生成xml
④获取xml文件指定项(标签文本,属性值,标签名,子项)
————
读取
1 使用什么读取XML文件?如何读取?
使用SAXReader,获取目标xml文件的字节流,用reader读取后由Document型变量接收。
SAXReader reader = new SAXReader();
FileInputStream fis = new FileInputStream("empInfo.xml");
Document doc = reader.read(fis);
2 如何获取Doucment型变量内的标签元素?如多个Emp标签?
必须先获取根元素,
Element root = doc.getRootElement();
由于是多个元素,所以必须用root.elements()方法,用list接收。
循环时,具体的值则由getText()接收。
int id = Integer.parseInt(ele.element("id").getText());
3 获取元素时必须注意什么?
确认获取的是标签内文本还是属性,如此处,id为属性,结果以获取文本的方式获取导致空指针错误,浪费了大量时间。
————
写出
写出一个XML文件
1 如何写出一个XML文件?
1:使用DocumentHelper.createDocument()创建一个Document对象表示一个空白文档
Document doc = DocumentHelper.createDocument();
2:使用doc.addElement("list")向Document中添加根元素
Element root = doc.addElement("list");
3:使用root.addElement()按照XML文档的结构逐级添加子元素,使用.addText()添加值或属性
添加文本
Element emp = root.addElement("emp");
name.addText(ele.getName());
添加属性
emp.addAttribute("id", ele.getId()+"");
4:创建XmlWriter对象,并规范输出格式
XMLWriter writer = new XMLWriter(fos,OutputFormat.createPrettyPrint());
5:将Document写出
writer.write(doc);
6:关闭XmlWriter
以上是关于20170906 - XML基础 - A的主要内容,如果未能解决你的问题,请参考以下文章