当前页面: 开发资料首页 → J2EE 专题 → 有没有解吸XML的代码例子,谢谢。进来说
有没有解吸XML的代码例子,谢谢。进来说
摘要: 有没有解吸XML的代码例子,谢谢。进来说
我想要个完整的解吸XML的例子,sax,dom都行。servlet,查出来数据组装XML,解吸XML怎么写。小弟在线等,不剩感激
JDOM解析:
logger.info("开始解析businessfactoryname.xml文件......");
SAXBuilder sax = new SAXBuilder();
try {
Document doc = sax.build(path);
Element ele = doc.getRootElement();
logger.info("得到了根元素:" + ele.getName());
List list = ele.getChildren("factory-str-content");
Iterator it = list.iterator();
while (it.hasNext()) {
Element element = (Element) it.next();
String key=element.getChild("content-key").getTextTrim();
String value=element.getChild("content-value").getTextTrim();
BusinessFactoryName.factoryname.put(key,value);
}
logger.info("解析businessfactory.xml文件完成......");
}
catch (Exception ex) {
logger.info("BusinessFactory_XML异常......");
ex.printStackTrace();
}
businessfactory.xml文件:
<?xml version="1.0" encoding="gbk"?>
登陆业务类工厂
LOGIN_FACTORY
com.friend.factory.LoginFactory
DOM4J- -
/**
*这里是一个利用DOM4J修改xml文件的例子
*
*/
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Attribute;
import java.util.List;
import java.util.Iterator;
import org.dom4j.io.XMLWriter;
import java.io.*;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class Dom4JUp{
public void modifyDocument(File inputXml){
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(inputXml);
/**
*inputXml 是从 D:/DOM4JText/4j.xml 创建的 java.io.File。
*使用 XPath 表达式从 article 元素中获得 level 节点列表。
*如果 level 属性值是“Intermediate”则改为“Introductory”。
*/
List list = document.selectNodes("//article/@level" );
Iterator iter=list.iterator();
while(iter.hasNext()){
Attribute attribute=(Attribute)iter.next();
if(attribute.getValue().equals("Intermediate"))
attribute.setValue("Introductory");
}
list = document.selectNodes("//article/@date" );
iter=list.iterator();
while(iter.hasNext()){
Attribute attribute=(Attribute)iter.next();
if(attribute.getValue().equals("December-2001"))
attribute.setValue("October-2002");
}
/**
*获取 article 元素列表,
*从 article 元素中的 title 元素得到一个迭代器,
*并修改 title 元素的文本
*
*/
list = document.selectNodes("//article" );
iter=list.iterator();
while(iter.hasNext()){
Element element=(Element)iter.next();
Iterator iterator=element.elementIterator("title");
while(iterator.hasNext()){
Element titleElement=(Element)iterator.next();
if(titleElement.getText().equals("Java configuration with XML Schema"))
titleElement.setText("Create flexible and extensible XML schema");
}
}
list = document.selectNodes("//article/author" );
iter=list.iterator();
while(iter.hasNext()){
Element element=(Element)iter.next();
Iterator iterator=element.elementIterator("firstname");
while(iterator.hasNext()){
Element firstNameElement=(Element)iterator.next();
if(firstNameElement.getText().equals("Marcello"))
firstNameElement.setText("Ayesha");
}
}
list = document.selectNodes("//article/author" );
iter=list.iterator();
while(iter.hasNext()){
Element element=(Element)iter.next();
Iterator iterator=element.elementIterator("lastname");
while(iterator.hasNext()){
Element lastNameElement=(Element)iterator.next();
if(lastNameElement.getText().equals("Vitaletti"))
lastNameElement.setText("Malik");
}
}
XMLWriter output = new XMLWriter(
new FileWriter( new File("D:/DOM4JText/Dom4jupdate.xml") ));
output.write( document );
output.close();
}
catch(DocumentException e)
{
System.out.println(e.getMessage());
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
public static void main(String args[]){
Dom4JUp dom4jupdate=new Dom4JUp();
File file=new File("D:/DOM4JText/4j.xml");
try{ dom4jupdate.modifyDocument(file);
}catch(Exception e){}
}
}
先生成XML然后在解吸啊。呵呵。不过先给你们发点分。在我写点吧。呵呵
还有10分。呵呵
顶.
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.*;
import java.io.StringReader;
import java.io.Reader;
import java.util.Vector;
public String ReadXml(String strXml,String strName) throws Exception{
String strPar = strName;
Vector vecName = new Vector();
String strValue = "";
Reader in= new StringReader(strXml);
SAXBuilder sb=new SAXBuilder();
Document doc=sb.build(in);
while(strPar.indexOf(".")!=-1) {
vecName.add(strPar.substring(0,strPar.indexOf(".")));
strPar = strPar.substring(strPar.indexOf(".")+1);
}
vecName.add(strPar);
Element root = doc.getRootElement();//ROOTの取得
if(vecName.size()!=0) {
Element item = root.getChild((String)vecName.get(0));
for(int i=0;iif(i!=0) {
if(item == null) break;
item = item.getChild((String)vecName.get(i));
}
}
if(item!=null) {
strValue = item.getText();
}
}
return strValue;
}
恩,我写的是一个方法,传得参数是XML字符串,和要取得字段,字段要全的
XML有字串的,也有文件的,看你用哪种吧
好。我结贴。给分了。谢谢各位