xmlç解æ
1.解æå¼ä¸ºäºå¾å°éé¢çå
容ï¼è¿è¡å¢,å ï¼æ¹æ¥çæä½
XMLç解ææ¹å¼
SAX(Simple API for XML)xmlææ¡£çä¸ç§ç®åç解ææ¹å¼
DOM(Document Object Model)
DOM4J
SAXï¼åºäºäºä»¶ç解ææ¹å¼
DOM: åºäºå¯¹è±¡ç解ææ¹å¼
äºä»¶çå¬ä¸è¦ç´
1.äºä»¶æº
2.çå¬å¨
3.äºä»¶
SAX åºäºäºä»¶ç解æ
ä¼ç¹: ç®å æçé«
缺ç¹:顺åºæ§è¡,ä¸è½å¾å°æ个å
ç´ ä¸è½éåæ§è¡
ä¸è½è¿è¡å¢ï¼ä¸å çæä½
SAX解ææ¹å¼å·¥ä½åçï¼
éè¿æ¶é´æºxmlææ¡£å建SAXParseFactory
SAXParserFactory factory=SAXParserFactory.newInstance();
å¾å°ä¸ä¸ªè§£æå¨
SAXParser parse=factory.newSAXParser();
对xmlæ件è¿è¡è§£æ
å¾å°è§£æçæ件对象
File file=new File("employees.xml");
éè¿çå¬å¨è¿è¡è§£æ
MyListener listener=new MyListener();
parse.parse(file,listener);
对äºçå¬å¨æ5个æ¹æ³ï¼çå¬å¨æå¨çç±»å®ç°çæ¥å£æï¼
org.xml.sax.hepers.DefaultHandler
org.xml.sax
éè¿æ¥çAPIææ¡£ä¸çDefaultHandlerç±»ä¸çä¸é¢5个æ¹æ³
startDocument() 对äºææ¡£å¼å§ç解æ
public void startDocument()throws SAXException{
System.out.println("ææ¡£å¼å§è§£æå¦!!!!");
}
startElement()å
ç´ å¼å§ç解æå
¶ä¸å 个åè¯
url:å½å空é´çurl
localName:å½å空é´çåç¼
qName:å
ç´
attributes:å
ç´ éçå±æ§
public void startElement(String url,String localName,String qName,Attributes attributes)throws SAXException{
StringBuffer sb=new StringBuffer();
sb.append("<"+qName);
for(int i=0;i<attributes.getLength();i++){
String attName=attributes.getQName(i);è·å¾å
ç´ å±æ§å称å
¶ä¸çi为å
ç´ ç第å 个å±æ§
String attValue=attributes.getValue(i);è·å¾å
ç´ å±æ§çå¼å
¶ä¸çi为å
ç´ ç第å 个å±æ§çå¼
sb.append(attName+"="+attValue);
}
sb.append(">");
System.out.print(sb.toString());
}
character()è·å¾å
ç´ çå
容ä½
public void characters(char[]ch,int start,int length)throws SAXException{
System.out.print(new String(ch,start,length));
}
endElement()è·å¾å
ç´ çç»æäºä»¶
public void endElement(String url,String localName,String qName)throws SAXException{
System.out.print("</"+qName+">");
}
endDocument()è·å¾ææ¡£çç»æäºä»¶
public void endDocument(){
System.out.println("æ档解æç»æå¦!!!!");
}
对äºSAX解æåªè½éè¡è§£æä¸è½è¶è¡è§£æ
DOM:åºäºå¯¹è±¡ç
ä¼ç¹:çµæ´»,è½è¿è¡å¢å çæä½
缺ç¹:读åé度æ
¢ï¼æçä½ å ç¨çå
容å¤
对äºDOM解æï¼ä¸éè¦æ·»å çå¬å¨ï¼æ级解æä»æ ¹å
ç´ ãä¸çº§åå
ç´ ãäºçº§åå
ç´ ......
åSAX解æç¸ååå¼å§ä¹æ¯è¦å¾å°ä¸ä¸ªè§£æå¨;
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance() ;
å 为æé æ¹æ³ä¸å¯ç¨ä¸å¯ä»¥new对象åªè½ç¨newInstance()æ¹æ³å¾å°è§£æå¨å¯¹è±¡
DocumentBuilder builder=factory.newDocumentBuilder() ;å¾å°ä¸ä¸ªè§£æå¨
对äºdocumentå¯ä»¥æ两ç§æ¹æ³å¾å°ï¼
Document document= builder.parse(new File(æ件路å¾));éè¿parseæ¹æ³è§£æä¸ä¸ªå·²æçxmlææ¡£
Document document=builder.newDocument();å¯ä»¥å¾å°ä¸ä¸ªç©ºçdocument对象
å¾å°æ ¹èç¹
Element root=document.getDocumentElement();
å¦æä¸åå¨æ ¹èç¹å³ä¸ºä¸ä¸ªç©ºdocument对象çæ¶ååªè½æ·»å è·èç¹
Element root=document.createElement(æ ¹èç¹çåå)
å¾å°æ ¹èç¹ä¸é¢çææä¸çº§åå
ç´
NodeList list=root.getElementsByTagName(æ ¹èç¹çååå¯ä»¥ç¨root.getTagNameæè
root.getNodeName()å¾å°æ ¹èç¹çåå)();
{
对ä¸documentå¯ä»¥æ·»å ä¸çº§åå
ç´
ä¸ç®¡documentæ¯å¦ä¸ºç©ºé½å¯ä»¥æ·»å
Element firstElements =root.creatElement(ä¸çº§åå
ç´ çåå);
å½ç¶ä¹å¯ä»¥ä¸ºä¸çº§åå
ç´ æ·»å å±æ§
ä¸çº§åå
ç´ çåå.setAttribute("å±æ§å","å±æ§å¼");
}
éè¿éålistéå
for(int i=0;i<list.getLength();i++){
Element first_elements=(Element)list.item(i);
å¯ä»¥å¾å°ä¸çº§èµæºçå±æ§çå¼å½ç¥éå±æ§çæ¶å
String attribute=first_elements.getAttribute("å±æ§çåå");
å¾å°ä¸çº§åå
ç´ çåå
String first_elements_name=first_elements.getNodeName();
å¾å°ä¸çº§åå
ç´ ä¸é¢ææçå
ç´ å¦id 第ä¸ä¸ªidå
ç´ å½ç¶ä¹å¯æå¾å¤ä¸ªid
éè¿item()æ¥ç¡®å®è¦åé£ä¸ªid
Element id_element=(Element)first_elements.getElementByName("id").item(0);
å¾å°idçå¼
String id_value=id_element.getFirstChild().getTextContent();
éè¿è¿ä¸ªéåéåå¯ä»¥æ¿å°ææåå
ç´
}
DOMæ·»å æå é¤å
ç´ ï¼
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance() ;
å 为æé æ¹æ³ä¸å¯ç¨ä¸å¯ä»¥new对象åªè½ç¨newInstance()æ¹æ³å¾å°è§£æå¨å¯¹è±¡
DocumentBuilder builder=factory.newDocumentBuilder() ;å¾å°ä¸ä¸ªè§£æå¨
对äºdocumentå¯ä»¥æ两ç§æ¹æ³å¾å°ï¼
Document document= builder.parse(new File(æ件路å¾));éè¿parseæ¹æ³è§£æä¸ä¸ªå·²æçxmlææ¡£
Document document=builder.newDocument();å¯ä»¥å¾å°ä¸ä¸ªç©ºçdocument对象
å¾å°æ ¹èç¹
Element root=document.getDocumentElement();
å¦æä¸åå¨æ ¹èç¹å³ä¸ºä¸ä¸ªç©ºdocument对象çæ¶ååªè½æ·»å è·èç¹
Element root=document.createElement(æ ¹èç¹çåå)
对ä¸documentå¯ä»¥æ·»å ä¸çº§åå
ç´
ä¸ç®¡documentæ¯å¦ä¸ºç©ºé½å¯ä»¥æ·»å
Element firstElements =root.creatElement(ä¸çº§åå
ç´ çåå);
å½ç¶ä¹å¯ä»¥ä¸ºä¸çº§åå
ç´ æ·»å å±æ§
ä¸çº§åå
ç´ çåå.setAttribute("å±æ§å","å±æ§å¼");
æ·»å äºçº§åå
ç´
Element secondElements=firstElements.creatElement("äºçº§åå
ç´ çåå");
æè½½ç»è£
ä¸çº§åå
ç´ firstElements.append(secondElements);
æ ¹èç¹root.appendChild(firstElements);
å°document对象æ åå
¥ç£ç
TransformerFactory tf=TransformerFactory.newInstance();
Transformer former=tf.newTransformer();
DOMSource source=new DOMSource(document);
StreamResult result= new StreamResult(new File("10.xml"));ç»æé
former.transform(source,result);
å®æ¯
DOM4jéè¦åå©å¤é¨jarå
éè¦åå©å¤é¨jarå
å°±å¿
须设置ç¯å¢åéä¸çclasspathæclasspath设置æ
dom4j jarå
åå¨çè·¯å¾ï¼ç»å¯¹è·¯å¾ï¼
ä¾å¦:
set classpath=.;C:\Documents and Settings\Administrator\æ¡é¢\day3\dom4j.jar
import org.dom4j.io.*;
import java.io.*;
import java.util.*;
import org.dom4j.*;
public static void read_XML(String fileName){
try{
//å¾å°ä¸ä¸ªè§£æå¨ï¼ç¸å½äºSAX,DOMéé¢ç解æå¨å·¥åï¼ä¸è§£æå¨
SAXReader reader=new SAXReader();
//å¾å°ä¸ä¸ªå¯¹è±¡æ
Document document=reader.read(new File(fileName));
//å¾å°ä¸ä¸ªæ ¹å
ç´
Element root=document.getRootElement();
System.out.println(root.getName());
//å¾å°ææçä¸çº§åå
ç´
List firstElements=root.elements();
Iterator it=firstElements.iterator();
while(it.hasNext()){
//ä¾æ¬¡å¾å°æ¯ä¸ä¸ªä¸çº§åå
ç´
Element firstElement=(Element)it.next();
System.out.println(firstElement.getName());
//å¾å°ææçå±æ§
List attributes=firstElement.attributes();
for(Object obj:attributes){
//ä¾æ¬¡å¾å°æ¯ä¸ä¸ªå±æ§
Attribute att=(Attribute)obj;
System.out.println(att.getName()+"="+att.getValue());
}
//å¾å°ä¸çº§åå
ç´ ä¸é¢çææå
ç´ ï¼åå
¶é带å¼
List second_Elements=firstElement.elements();
Iterator second_Element=second_Elements.iterator();
while(second_Element.hasNext()){
Element sec_Element=(Element)second_Element.next();
System.out.println(sec_Element.getName()+":"+sec_Element.getText());
}
System.out.println("----------");
}
}catch(Exception e){
}
}
public static void write(String fileName){
try{
Document document = DocumentHelper.createDocument();
//åé ä¸çº§åå
ç´
Element books=document.addElement("books");
books.addComment("The book is J2EE");
Element book=books.addElement("book");
å建å
ç´ çå±æ§
book.addAttribute("show","yes");
book.addAttribute("page","100");
å建äºçº§åå
ç´
Element book_name=book.addElement("bookName");
å建å
ç´ çå
容ä½
book_name.setText("xml");
Element book_price=book.addElement("bookPrice");
book_price.setText("3000");
Element book_press=book.addElement("bookPress");
book_press.setText("etoak");
Element book_author=book.addElement("bookAuthor");
book_author.setText("Robin");
//æè½½å¦ä¸ä¸ªä¸çº§åå
ç´
book=books.addElement("book");
book.addAttribute("show","NO");
book.addAttribute("page","200");
book_name=book.addElement("bookName");
book_name.setText("èµè±å®å
¸");
book_price=book.addElement("bookPrice");
book_price.setText("æ ä»·ä¹å®");
book_press.addElement("bookPress");
book_press.setText("å山派");
book_author=book.addElement("bookAuthor");
book_author.setText("æå¹³ä¹");
//å建xmlæ件è¾åºçè·¯å¾
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("gbk");
XMLWriter xw=new XMLWriter(new FileOutputStream(fileName),
format);
//XMLWriter xx= new XMLWriter(System.out,OutputFormat.createPrettyPrint());
xw.write(document);
xw.flush();
xw.close();
}catch(Exception e){
对äºDOM4jæ·»å åå
ç´ ï¼æ¯ä¸çº§ä¸çº§çæ·»å çèå¨DOMä¸æ¯å
åé
åå
ç´ ç¶ååæè½½çDOM4jå¨å建åå
ç´ çæ¶å就确å®å¥½äºé¡ºåº
对äºæ件çè¾åºåæåç§åæç¹è²å
¶ä¸SAXæ¯éè¦æ·»å çå¬å¨ç
}
}
public static void update(String fileName){
try{
SAXReader reader= new SAXReader();
Document document = reader.read(new File(fileName));
Element root = document.getRootElement();
System.out.println(root.getName());
å¨æ ¹èç¹ä¸æ·»å ä¸çº§åå
ç´
Element student=root.addElement("student");
Element id=student.addElement("id");
id.setText("007");
OutputStream os= new FileOutputStream(fileName);
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter xw = new XMLWriter(os,format);
xw.write(document);
xw.flush();
xw.close();
}catch(Exception e){
åå建ä¸ä¸ªæ°çdocument对象类似åªä¸è¿è¿ä¸ªçæ ¹èç¹å·²ç»åå¨
ç´æ¥å¯ä»¥å¨æ ¹èç¹ä¸æ·»å ä¸çº§åå
ç´ ï¼
}
}
温馨提示:内容为网友见解,仅供参考
在java在如何解析XML文件
在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB 1. DOM(Document Object Model)此方法主要由W3C提供,它将xml文件全部读入内存中,然后将各个元素组成一棵数据树,以便快速的访问各个节点 。 因此非常消耗系统性能 ,对比较大的文档不适宜采用DOM方法来解析。 DOM API 直接沿袭了 XML ...
java 关于读取xml文件的问题
1.读取XML文件,获得document对象。SAXReader reader = new SAXReader();Document document = reader.read(new File("input.xml"));2.解析XML形式的文本,得到document对象。String text = "<members><\/members>";Document document = DocumentHelper.parseText(text);3.主动创建document对象。Document do...
java读取配置文件的方法(xml)
回答:建议看哈JAXP 关于java操作xml其实很简单
java 怎么读取配置文件
1.利用ClassPathXmlApplicationContext java代码 2.利用FileSystemResource读取 java代码 二.读取properties配置文件 这里介绍两种技术:利用spring读取properties 文件和利用java.util.Properties读取 (一)利用spring读取properties 文件 我们还利用上面的HelloBean. java文件,构造如下beanConfig.properties文件:propert...
如何用Java实现对xml文件的读取和写入以及保存
public class Dom4jSample { public static void main(String[] args) { Dom4jSample dom4jSample = new Dom4jSample();Document document = dom4jSample.createDocument();try{ dom4jSample.FileWrite(document);Document documentStr = dom4jSample.StringToXML("<China>I Love!<\/China>");dom4jSample....
java读取xml文件内容
java中不是有个读取xml文件的类吗?之间调用那类读取出来,然后用取节点的方法去取对应节点的里的值。等下给你代码。public class ReaderXml { private static String filename = "E:\\\\workplace\\\\readerxml\\\\bin\\\\reader\\\\xml\\\\reader.xml";\/\/ private static Config config;public static void ...
java 设置读取包含中文XML文件
用的是ECLIPSE吗?如果是,请先把中文去掉,关闭XML,然后,选中你要写中文的XML->右键->Properties->选中Resource->在Text file encoding下面点Other里面选中UTF-8->确定,这样就可以在里面写中文了。
如何用java解析xml文档,然后将数据存到数据库里
import java.io.*;public class XMLUtil { \/\/该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象 public static Object getBean(){ try { \/\/创建文档对象 DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = dFactory.newDocumentBuilder();Documen...
如何用java程序从xml文件中根据文本内容获取指定标签并删除标签和内容...
思考1:不同应用程序之间的通信?思考2:不同平台间的通信?思考3:不同平台间的数据共享?答案就是我们要学习的XML文件。我们可以使用相同的xml把不同的文件联系起来 回到顶部 二、应用 DOM 方式解析 XML ❤ 在Java程序中如何获取XML文件的内容 解析的目的:获取节点名、节点值、属性名、属性...
java解析xml文件
SaxReader reader = new SaxReader();Document doc = reader.read(new File("class.xml"));Element element = doc.getRootElement();\/\/获取根元素 迭代器:取根元素下的子元素名称 Iterator<Element> iter = element.elementIterator();while(iter.hashNext){ Element el = (Element)iter.next();...