java解析XML修改特定项的值然后保存xml文件,求高手帮忙 急需 在线等 10

例如以下hibernate.cfg.xml文件,我要更改hibernate.connection.url,hibernate.connection.username,hi... 例如以下hibernate.cfg.xml文件,我要更改hibernate.connection.url,hibernate.connection.username,hibernate.connection.password的值:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://192.168.1.52:1433;databaseName=Management</property>
<property name="hibernate.connection.username">parkdb</property>
<property name="hibernate.connection.password">123456789</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.max_size">50</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">50000</property>
<property name="hibernate.c3p0.max_statements">270</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.validate">false</property>
<property name="hiberante.cache.use_second_level_cache">false</property>
<property name="hibernate.jdbc.batch_size">50</property>
<property name="hibernate.jdbc.fetch_size">100</property>
<mapping resource="model/InoutPut.hbm.xml"/>
<mapping resource="model/Uid.hbm.xml"/>
<mapping resource="model/Permission.hbm.xml"/>
<mapping resource="model/Staff.hbm.xml"/>
<mapping resource="model/Card.hbm.xml"/>
<mapping resource="model/Dept.hbm.xml"/>
<mapping resource="model/Userright.hbm.xml"/>
<mapping resource="model/Kqms.hbm.xml"/>
<mapping resource="model/SxTime.hbm.xml"/>
<mapping resource="model/Leave.hbm.xml"/>
</session-factory>
</hibernate-configuration>
急需 求给代码谢谢
展开
 我来答
大大卷和真知棒
2013-02-28 · 超过23用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:64.3万
展开全部
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public static void main(String[] args) throws Exception {
SAXReader sax = new SAXReader();
//假设你的xml是放在D盘下的叫做a.xml的文件
File file = new File("D:\\a.xml");
Document doc = sax.read(new FileInputStream(file));
Element root = doc.getRootElement();
root = root.element("session-factory");
List<Element> els = root.elements();
for(Element e : els){
if(e.getName().equals("property")){
String attval = e.attribute("name").getText();
if(attval.equals("hibernate.connection.url")){
//要修改的url的新值
e.setText("newUrl");
}else if(attval.equals("hibernate.connection.username")){
/ /要修改的username的新值
e.setText("newUsername");
}else if(attval.equals("hibernate.connection.password")){
//要修改的password的新值
e.setText("newPassword");
}
}
}
//重新写入到文件
XMLWriter output = new XMLWriter(new FileWriter(file));
output.write(doc);
output.close();
}

纯手打的,应该还有更简单的方法,但是没有工具忘记函数了,给你写了一个我记得住的方式,这个应该是可以的,用的是dom4j,如果你没有可能需要导入一个dom4j.jar的jar包
start_baby
2013-07-18
知道答主
回答量:6
采纳率:0%
帮助的人:5.7万
展开全部
可以直接在HibernateSessionFactory中设置
configuration.configure(configFile);
configuration.setProperty("hibernate.connection.url",“你的url”);
configuration.setProperty("hibernate.connection.username",“”);
configuration.setProperty("hibernate.connection.password",“”);
sessionFactory = configuration.buildSessionFactory();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大头祥子
2013-02-28
知道答主
回答量:22
采纳率:0%
帮助的人:19.9万
展开全部
为什么不手动修改,必须要写程序吗?
更多追问追答
追问
上面要求jdbc:sqlserver://192.168.1.52:1433;databaseName=Management
parkdb
123456789
可以修改url的IP地址和数据库 ,username,password。我想了办法他们说不行让我用xml,而我不太懂xml所以只能求助了 如果你有好的介意还请指教
追答
我很奇怪,“他们说不行让我用xml”这就话是什么意思,既然数据库的URL可以修改了,为什么用户名和密码不能直接在XML修改,使用XML配置hibernate的数据源就是为了解决硬编码问题,XML既然在你手里,就可以有你来修改了,要用程序的话就使用DOM4j这个开源库了,他的API很简单的,我觉得这样是不是有点费力不讨好啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哭哭吓唬你
2013-02-28
知道答主
回答量:39
采纳率:0%
帮助的人:8.5万
展开全部
使用dom4j或者是j4dom对血没了进行操作,具体可以看着两者的文档
追问
我对xml不熟  可以麻烦给代码 我现在急需 谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式