本篇文章主要介绍了" Java读写Xml",主要涉及到方面的内容,对于其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
XmleXtendsible markup language 可扩展的标记语言XML 有什么用?可以用来保存数据可以用来做配置文件数据传输载体定义xml其实就是...
如:
xml的注释,不允许放置在文档的第一行。 必须在文档声明的下面。
CDATA区
如果某段字符串里面有过多的字符, 并且里面包含了类似标签或者关键字的这种文字,不想让xml的解析器去解析。 那么可以使用CDATA来
包装。 不过这个CDATA 一般比较少看到。 通常在服务器给客户端返回数据的时候。
我爱黑马训练营]]>
XML 解析
其实就是获取元素里面的字符数据或者属性数据。
XML解析方式(面试常问)
有很多种,但是常用的有两种。
针对这两种解析方式的API
一些组织或者公司, 针对以上两种解析方式, 给出的解决方案有哪些?
jaxp sun公司。 比较繁琐
jdom
dom4j 使用比较广泛
Dom4j 基本读写用法
创建SaxReader对象
指定解析的xml
获取根元素。
根据根元素获取子元素或者下面的子孙元素
public class XmlParser
{
public static void main(String[] args)
{
try
{
// DOM4J读xml
SAXReader reader = new SAXReader();
Document document = reader.read(new File("src/students.xml"));
// 1.获取根节点
Element element = document.getRootElement();
// 2.获取根节点下的指定的元素
Element userElement = element.element("user");
// 3.获取当前元素的属性
String str = userElement.attributeValue("id");
// 4.获取当前元素的所有属性
List userAttrList = userElement.attributes();
// 5.获取当前下所有的子元素
List elementList = element.elements();
// 6.获取当前元素下子元素的值
String emailStr = userElement.element("email").getText();
// 7.删除某属性
Attribute attribute = element.attribute("size");// 属性名name
//document.remove(attribute);
// 8.添加节点的属性和文字.
element.addAttribute("name", "sitinspring");
System.out.println(emailStr);
// 将文档写入XML文件.
// 1.文档中全为英文,不设置编码,直接写入的形式.
XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
writer.write(document);
writer.close();
// 2.文档中含有中文,设置编码格式写入的形式
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK");//指定XML编码
writer = new XMLWriter(new FileWriter("output.xml"), format);
writer.write(document);
writer.close();
// XPath方式读取指定的节点
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
SaxReader 创建好对象 。
Document
Element
看文档
记住关键字 。
有对象先点一下。
看一下方法的返回值。
根据平时的积累。 getXXX setXXX
Dom4j 的 Xpath使用
dom4j里面支持Xpath的写法。 xpath其实是xml的路径语言,支持我们在解析xml的时候,能够快速的定位到具体的某一个元素。
添加jar包依赖
jaxen-1.1-beta-6.jar
在查找指定节点的时候,根据XPath语法规则来查找
后续的代码与以前的解析代码一样。
//要想使用Xpath, 还得添加支持的jar 获取的是第一个 只返回一个。
Element nameElement = (Element) rootElement.selectSingleNode("//name");
System.out.println(nameElement.getText());
System.out.println("----------------");
//获取文档里面的所有name元素
List list = rootElement.selectNodes("//name");
for (Element element : list) {
System.out.println(element.getText());
}
XML 约束【了解】
如下的文档, 属性的ID值是一样的。 这在生活中是不可能出现的。 并且第二个学生的姓名有好几个。 一般也很少。那么怎么规定ID的值唯一, 或者是元素只能出现一次,不能出现多次? 甚至是规定里面只能出现具体的元素名字。