站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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有字串的,也有文件的,看你用哪种吧


好。我结贴。给分了。谢谢各位


↑返回目录
前一篇: 初学者对J2EE的疑惑:关于jsp 页面和EJB的部署位置
后一篇: about one to many,many to one, many to many ,one to one