xml 个人练习2
package cn.gdpe.xml;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class XmlReader {
/**
* @param args
* @throws DocumentException
*
* 读取xml文档
*/
public static void main(String[] args) throws Exception {
new XmlReader().xmlTest();
// List<Person> persons=new XmlReader().toPerson();
// for(Person p:persons){
// System.out.println(p.toString());
// }
}
public void xmlTest(){
try {
SAXReader sr=new SAXReader();
Document dc=sr.read("src/xml1.xml");
StringBuffer s=new StringBuffer();
Element root=dc.getRootElement();
getChildNode(root,s);
System.out.println(s.toString());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void getChildNode(Element ele,StringBuffer sb){
sb.append("<"+ele.getName()+"");
List<Attribute> attrs=ele.attributes();
if(attrs!=null){
for(Attribute attr:attrs){
sb.append(" "+attr.getName()+"=\""+attr.getValue()+"\"");
}
}sb.append(">");
Iterator<Node> it=ele.nodeIterator();
while(it.hasNext()){
Node node=it.next();
if(node.getNodeTypeName()=="Element"){
Element e=(Element)node;
getChildNode(e,sb);
}else{
sb.append(node.getText());
}
}
sb.append("</"+ele.getName()+">");
}
public void addChildNode(Element ele) throws IOException{
ele.addElement("person");
File file=new File("src/xml1.xml");
InputStream is=new FileInputStream(file);
int len=0;
byte[] b=new byte[1024];
while((len=is.read(b))!=-1){
System.out.println(new String(b,0,len));
}
}
public List<Person> toPerson(){
List<Person> persons=new ArrayList<Person>();
try {
SAXReader sr=new SAXReader();
Document dc = sr.read("src/xml1.xml");
Element root=dc.getRootElement();
List<Element> eles=root.elements();
for(Element e:eles){
List<Element> es=e.elements();
Person person=new Person();
for(Element ele:es){
if(ele.getName()=="name"){
person.setName(ele.getText());
}else if(ele.getName()=="address"){
person.setAddress(ele.getText());
}else if(ele.getName()=="qq"){
person.setQq(Integer.parseInt(ele.getText()));
}else if(ele.getName()=="cell"){
person.setCell(Integer.parseInt(ele.getText()));
}else{
person.setSex(ele.getText());
}
}
persons.add(person);
}
return persons;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
xml 个人练习2的更多相关文章
- XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法
在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...
- .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?
物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...
- WebApi接口 - 响应输出xml和json
格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...
- XML技术之DOM4J解析器
由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...
- UWP开发之Mvvmlight实践六:MissingMetadataException解决办法(.Net Native下Default.rd.xml配置问题)
最近完成一款UWP应用,在手机端测试发布版(Release)的时候应用莫名奇妙的强行关闭,而同样的应用包在PC端一点问题都没有,而且Debug版在两个平台都没有问题,唯独手机的Release版有问题. ...
- PHP中遍历XML之SimpleXML
简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言.XML是当今用于传输数据的两大工具之一,另外一个是json. 我们在PHP中使用XML也是用来传输数据, ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
- C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
Q: 在反序列化 Xml 字符串为 Xml 对象时,抛出如下异常. 即在 XML文档(0, 0)中有一个错误:缺少根元素. A: 首先看下代码: StringBuilder sb = new Stri ...
随机推荐
- 冒泡排序原理(BubbleSorted)
//简单的冒泡排序public class BubbleMath { public static void main(String[] args) { //分清楚数组的头和尾,开始为尾,最后为头,因为 ...
- 《A First Course in Probability》-chaper4-离散型随机变量-随机变量和或积的期望
基于随机变量一系列最基本的概念,我们便会开始探讨一些随机变量函数的期望.多个随机变量和的期望.多个随机变量乘积的期望. 这里我们就简单的讨论后两个期望. 这两个问题可以基于如下的一个现实模型: 同时掷 ...
- jQuery各种效果举例
jQuery 所有jQuery详细使用说明请见:http://www.php100.com/manual/jquery/ jQuery的作用是操作浏览器html,从而达到用户的可视化效果,按照功能可分 ...
- zoj 1671 Walking Ant【简单bfs】
Walking Ant Time Limit: 2 Seconds Memory Limit: 65536 KB Ants are quite diligent. They sometime ...
- poj 1328贪心
Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...
- c#语言基础编程—string
引言 在c#中经常会有相关的string的操作,string类型为引用类型,集成于Object,所以会有四个方法.详情可见 值类型和引用类型的区别 里面详细介绍了,值类型和引用类型的区别和应用场合,所 ...
- Unity3D 制作右上角小地图
一个简单的方法, 首先先在俯视图视角截取一张图片,用作小地图的背景图片.然后新建一个Plane,把截图附到Plane上,然后把Plane与刚才截图的场景的相应位置重合,要尽量重合,当做地图.(见 ...
- PPT扁平化风格设计手册
钱文嘉:颜色选择,搭配 http://www.pptfans.cn/341917.html
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(41)-组织架构
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(41)-组织架构 本节开始我们要实现工作流,此工作流可以和之前的所有章节脱离关系,也可以紧密合并. 我们当 ...
- [io PWA] Great libraries and tools for great Progressive Web Apps
sw-toolbox: Github It provides a cononical implementation of all the runtime caching strategies that ...