(练习)遍历XML文档
2017-12-17 20:21
253 查看
import java.io.File;
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.io.SAXReader;
class Demo{
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("D:\\person.xml"));
Element rootElem = doc.getRootElement();
System.out.println(rootElem.getName());
Iterator<Element> it= rootElem.elementIterator("person");
while(it.hasNext()){
Element personElem = it.next();
System.out.println(personElem.getName());
List<Attribute> list1 = personElem.attributes();
for(Attribute attr:list1){
System.out.println(attr.getName()+"="+attr.getValue());
}
List<Element> list2 = personElem.elements();
for(Element elems:list2){
System.out.println(elems.getName()+"="+elems.getText());
}
}
}
}*/
/*
import java.io.File;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
class Demo{
public static void main(String[] args) throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("D:\\person.xml"));
Element rootElem = doc.getRootElement();
StringBuffer sb = new StringBuffer();
getChildElement(rootElem, sb);
System.out.println(sb.toString());
}
public static void getChildElement(Element elem, StringBuffer sb){
sb.append("<"+elem.getName());
//得到标签的属性列表
List<Attribute> atts = elem.attributes();
if(atts!=null){
for(Attribute attr:atts){
sb.append(" "+attr.getName()+"=\""+attr.getValue()+"\"");
}
}
sb.append(">");
List<Element> list = elem.elements();
for(Element element:list){
getChildElement(element, sb);
sb.append(element.getText());
}
//结束标签
sb.append("</"+elem.getName()+">");
}
}*/
package gz.itcast.a_dom4j_read;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.Text;
import org.dom4j.io.SAXReader;
import org.junit.Test;
/**
* 练习-完整读取xml文档内容
* @author APPle
*
*/
public class Demo3 {
@Test
public void test() throws Exception{
//读取xml文档
SAXReader reader = new SAXReader();
Document doc =
reader.read(new File("./src/contact.xml"));
//读取根标签
Element rootELem = doc.getRootElement();
StringBuffer sb = new StringBuffer();
getChildNodes(rootELem,sb);
System.out.println(sb.toString());
}
/**
* 获取当前标签的所有子标签
*/
private void getChildNodes(Element elem,StringBuffer sb){
//System.out.println(elem.getName());
//开始标签
sb.append("<"+elem.getName());
//得到标签的属性列表
List<Attribute> attrs = elem.attributes();
if(attrs!=null){
for (Attribute attr : attrs) {
//System.out.println(attr.getName()+"="+attr.getValue());
sb.append(" "+attr.getName()+"=\""+attr.getValue()+"\"");
}
}
sb.append(">");
//得到文本
//String content = elem.getText();
//System.out.println(content);
Iterator<Node> it = elem.nodeIterator();
while(it.hasNext()){
Node node = it.next();
//标签
4000
if(node instanceof Element){
Element el = (Element)node;
getChildNodes(el,sb);
}
//文本
if(node instanceof Text){
Text text = (Text)node;
sb.append(text.getText());
}
}
//结束标签
sb.append("</"+elem.getName()+">");
}
}
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.io.SAXReader;
class Demo{
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("D:\\person.xml"));
Element rootElem = doc.getRootElement();
System.out.println(rootElem.getName());
Iterator<Element> it= rootElem.elementIterator("person");
while(it.hasNext()){
Element personElem = it.next();
System.out.println(personElem.getName());
List<Attribute> list1 = personElem.attributes();
for(Attribute attr:list1){
System.out.println(attr.getName()+"="+attr.getValue());
}
List<Element> list2 = personElem.elements();
for(Element elems:list2){
System.out.println(elems.getName()+"="+elems.getText());
}
}
}
}*/
/*
import java.io.File;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
class Demo{
public static void main(String[] args) throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read(new File("D:\\person.xml"));
Element rootElem = doc.getRootElement();
StringBuffer sb = new StringBuffer();
getChildElement(rootElem, sb);
System.out.println(sb.toString());
}
public static void getChildElement(Element elem, StringBuffer sb){
sb.append("<"+elem.getName());
//得到标签的属性列表
List<Attribute> atts = elem.attributes();
if(atts!=null){
for(Attribute attr:atts){
sb.append(" "+attr.getName()+"=\""+attr.getValue()+"\"");
}
}
sb.append(">");
List<Element> list = elem.elements();
for(Element element:list){
getChildElement(element, sb);
sb.append(element.getText());
}
//结束标签
sb.append("</"+elem.getName()+">");
}
}*/
package gz.itcast.a_dom4j_read;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.Text;
import org.dom4j.io.SAXReader;
import org.junit.Test;
/**
* 练习-完整读取xml文档内容
* @author APPle
*
*/
public class Demo3 {
@Test
public void test() throws Exception{
//读取xml文档
SAXReader reader = new SAXReader();
Document doc =
reader.read(new File("./src/contact.xml"));
//读取根标签
Element rootELem = doc.getRootElement();
StringBuffer sb = new StringBuffer();
getChildNodes(rootELem,sb);
System.out.println(sb.toString());
}
/**
* 获取当前标签的所有子标签
*/
private void getChildNodes(Element elem,StringBuffer sb){
//System.out.println(elem.getName());
//开始标签
sb.append("<"+elem.getName());
//得到标签的属性列表
List<Attribute> attrs = elem.attributes();
if(attrs!=null){
for (Attribute attr : attrs) {
//System.out.println(attr.getName()+"="+attr.getValue());
sb.append(" "+attr.getName()+"=\""+attr.getValue()+"\"");
}
}
sb.append(">");
//得到文本
//String content = elem.getText();
//System.out.println(content);
Iterator<Node> it = elem.nodeIterator();
while(it.hasNext()){
Node node = it.next();
//标签
4000
if(node instanceof Element){
Element el = (Element)node;
getChildNodes(el,sb);
}
//文本
if(node instanceof Text){
Text text = (Text)node;
sb.append(text.getText());
}
}
//结束标签
sb.append("</"+elem.getName()+">");
}
}
相关文章推荐
- XML练习文档 不知道自己写的对不对!
- Dom 解析xml文档,实现xml文档结点的增删改查,遍历
- 使用XmlDocument中的XmlElement遍历xml文档
- 学习: .NET XML实例演练,遍历XML文档和构造XML文档
- 稻草人的程序之路--XML文档数据的遍历
- javaWEb-day01(根据dtd文档写XML练习)
- AJAX 学习笔记(5) 处理XML文档的DOM元素属性和遍历DOM元素方法
- 处理及遍历XML文档DOM元素属性及方法整理
- 遍历XML文档的所有节点及属性(ASP)
- xmlReader遍历xml文档案例
- 用Java对xml文档进行遍历,更新,创建,删除
- 用Java语言遍历读取和操纵XML文档
- 循环递归遍历XML文档或按某要求遍历XML文档
- 利用dom4j解析xml文档,自动遍历节点属性
- XML遍历文档树(广度优先与递归)
- 【转】循环递归遍历XML文档或按某要求遍历XML文档
- XML小练习:利用SAX解析XML文档(感觉不方便)
- 利用dom4j解析xml文档,自动遍历节点属性
- 处理及遍历XML文档DOM元素属性及方法整理
- QT 遍历多层次的XML文档