当前位置:首页 » 编程语言 » xml配置文件java

xml配置文件java

发布时间: 2022-07-14 14:52:03

java 读取和修改本地xml配置文件

dom4j解析
package demo;
import java.io.*;

import org.dom4j.*;
import org.dom4j.io.*;
import java.util.*;

public class WriteXML {
public void writer(){
//在内存中创建一个文档对象
Document doc=DocumentHelper.createDocument();
//往文档对象中添加一个元素
Element root=doc.addElement("users");
//将上面创建元素的设为根元素
doc.setRootElement(root);

//为根元素添加一个名称为user的子元素
Element user1=root.addElement("user");
//为user子元素添加一个id的属性 并赋值
user1.addAttribute("id","1");
//为user子元素添加一个子元素
Element name1=user1.addElement("name");
//为name子元素设置文本
name1.setText("zz");
Element config1=user1.addElement("config");
config1.setText("fullscreen");

Element user2=root.addElement("user");
//为user子元素添加一个id的属性 并赋值
user2.addAttribute("id","2");
//为user子元素添加一个子元素
Element name2=user2.addElement("name");
//为name子元素设置文本
name2.setText("xx");
Element config2=user2.addElement("config");
config2.setText("widescreen");

//下面将会进行输出产生XML文件
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
format.setIndent(true);
format.setNewLineAfterNTags(1);
format.setNewlines(true);

try {
XMLWriter writer=new XMLWriter(new FileOutputStream("users.xml"),format);
writer.write(doc);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

/*
Element user2=user1.createCopy();
user2.attribute("id").setValue("2");
Iterator it=user2.elementIterator();
while(it.hasNext()){
it.next();
}*/

}
}

⑵ xml在java项目中起到的作用具体是什么

java项目中,xml文件一般都是用来存储一些配置信息
一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重新编译java文件,而且,这些配置信息放在一起,别的人来读你写的代码的时候,就方便了很多
框架中的xml , 除了配置信息 , 还可以写一些对应关系,其实也是一种配置信息 .拿struts来说,xml配置的是页面url对应后台java类(action)的关系,在配置和修改的时候,只需要改一个xml文件就可以了,没必要一个个的查找java代码
java项目完成之后,每个模块应该都是独立的,模块之间的关系都可以使用xml来进行维护,spring就是这样的一个框架

一个好的项目,需要有良好的可拓展性,如果把所有的逻辑关系还有配置信息都写入代码中,会使程序的可拓展性变差,为了解决这个问题,xml就可以对整个项目进行调度(spring)

还有使用xml作为数据储存,不过用起来很少,多数还是用来存放配置信息

⑶ Java读取xml配置文件:

你用DOM把账号节点取出来
然后用String中的split方法做切割
就可以放到数组里了
如果单纯是想看账号是不是在这个里面
你也可以直接String.indexof查找读出来的信息中有没有你要的账号

⑷ java读取配置文件的方法(xml)

#include <XMLDoc.hpp>
——相关说明
_di_IXMLDocument 为模板类
typedef System::DelphiInterface< IXMLDocument > _di_IXMLDocument;

_di_IXMLNode
typedef System::DelphiInterface< IXMLNode > _di_IXMLNode;

_di_IXMLNodeList 同

——类方法
//设置参数
void TXXX::setOptions(String name,String value){

//创建文档对象
_di_IXMLDocument XMLDoc = LoadXMLDocument(L"文件路径");

XMLDoc->Active=true;

//文档根节点
_di_IXMLNode root = XMLDoc->DocumentElement;

//想要查找节点
_di_IXMLNode tempNode;

//调用搜索方法
searchXml(name,root,tempNode);

// 处理
if(tempNode!=NULL)
tempNode->SetText(value);
XMLDoc->SaveToFile(L"文件路径");
}
//递归搜索参数节点树
void TXXX::searchXml(String name,_di_IXMLNode &Parent_Node,_di_IXMLNode& tempNode){

_di_IXMLNode Child_Node; //子结点
//子节点列表
_di_IXMLNodeList list = Parent_Node->ChildNodes;
for(int i=0;i<list->Count;i++)
{
Child_Node = list->Get(i);
//递归结束条件
if(Child_Node->GetNodeName()==name)
{
tempNode = Child_Node;
break;
}
else
{
//递归函数
searchXml(name,Child_Node,tempNode);
}
}
}

⑸ 通过java怎么配置xml文件

JAVA与XML文件,可以说是软件开发的“黄金搭档”,而如何使用JAVA完成对XML文件的读取,是我们首先要解决的问题。
一、XML文件

这个示例文件包括了用来打开ORACLE数据库的各种参数

<?xml version="1.0" encoding="UTF-8"?>
<dbmsg>
<dbinfo>
<drivername>oracle.jdbc.driver.OracleDriver</drivername>
<sConnStr>jdbc:oracle:thin:@11.88.225.80:1521:VOUCHERDB</sConnStr>
<username>SYS AS SYSDBA</username>
<password>voucherdb</password>
</dbinfo>
</dbmsg>

二、编写类名为ReadXml的类,用于解析XML文件

我们要在应用程序中打开数据库,就必须完成对该文件中drivername、sConnStr、username、password的读取,通过查找有关资料,笔者编制了以下程序,用于读取文件名为filename的XML文件。

package voucher.basic;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class ReadXml {
private String drivername;
private String sConnStr;
private String username;
private String password;

public String getDrivername() {
return drivername;
}

public String getSConnStr() {
return sConnStr;
}

public String getUsername() {
return username;
}

public String getPassword() {
return password;
}
public void setDrivername(String drivername) {
this.drivername = drivername;
}

public void setSConnStr(String connStr) {
sConnStr = connStr;
}

public void setUsername(String username) {
this.username = username;
}

public void setPassword(String password) {
this.password = password;
}

public ReadXml(String fileName){
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
InputStream is=new FileInputStream(fileName);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();
NodeList dbinfo=root.getChildNodes();
if(dbinfo!=null){
for(int i=0;i<dbinfo.getLength();i++){
Node db=dbinfo.item(i);
for(Node node=db.getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("drivername")){
setDrivername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("sConnStr")){
setSConnStr(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("username")){
setUsername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("password")){
setPassword(node.getFirstChild().getNodeValue());
}
}
}
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

这个以ReadXml命名的类,使用了参数为文件名的构造方法,用户只要将配置文件我名称传递给该方法,就可以完成对XML文件的解析,进而完成对相应参数数的读取。三、如何获取XML文件全路径并读取配置参数

获取XML文件全路径的方法有两个,一是在servlet中获取,二是在单独的JAVA类中获取。

1.在servlet中获取XML文件的全路径并读取配置参数

程序片段String dirPath = getServletContext().getRealPath( "/WEB-INF");
String fileName = dirPath + "/conn.xml";
ReadXml xm = new ReadXml(fileName);
String DriverName = xm.getDrivername();
String connStr = xm.getSConnStr();
String user = xm.getUsername();
String pas = xm.getPassword();

将这段程序添加到servlet中dopost()之后即可完成参数的读取

2.在单独的JAVA类中获取全路径并读取配置参数

程序片段String dirpath = System.getProperty("user.dir");
String xmlFile = dirpath + "/WebRoot/WEB-INF/conn.xml";
ReadXml rdxml = new ReadXml(xmlFile);
String driverName = rdxml.getDrivername();
String sConnStr = rdxml.getSConnStr();
String userName = rdxml.getUsername();
String passWord = rdxml.getPassword();注:配置文件conn.xml保存在webroot/WEB-INF目录中。

⑹ 关于java中xml文件配置的路径问题

配置文件可以做路径映射的,通常/static/css/是可以直接访问的,/WEB-INF/html/是不能直接访问的,必须通过servlet或者其他类似controller访问。
楼上2位没说全,"/"在java代码里面才需要转义,页面上是不需要的;
"/" 代表的不是当前文件夹,代表的是根路径,"./"才是当前文件夹。

⑺ XML配置文件怎么写,都有些什么属性java代码如何解析XML配置文件

xml是类似这种的:
<?xml version="1.0" encoding="gbk"?>
<head></head>
<body></body>
可以在节点中加属性例如:
<body id = "" name = ""></body>
java代码解析一般用DOM4j.分两种类型的解析方式:
1.DOM: Document Object Model 文档对象模型
树形结构装载到内存中.完成后才开始解析.
缺点:如果文件比较大,内存有压力,时间会延迟.
优点:可以对树形结构做任何操作:加节点,删节点,遍历...

2.SAX: Simple API for XML
流(Stream)的特征,解析可以立即开始.
不保存数据. 对内存无压力.不能修改节点.
适合大文件的解析.

下面附上代码:
public static List<String> parseCustomXML(String fileName) {

// 定义解析器
SAXReader saxReader = new SAXReader();
List<String> eleList = new ArrayList<String>();

// 开始解析,返回文档对象
/*
* <root>
<msg>
<element totalLenghtorder = "1" totalLenghtlenght = "8">totalLenght</element>
<element totalLenghtorder = "2" totalLenghtlenght = "8">bodyLenght</element>

<element jydmorder = "3" jydmlenght = "6">jydm</element>
<element msgTypeorder = "4" msgTypelenght = "2">msgType</element>
<element sendSignorder = "5" sendSignlenght = "1">sendSign</element>
<element msgCheckCodeorder = "6" msgCheckCodelenght = "32">msgCheckCode</element>
<element serviceNameorder = "7" serviceNamelenght = "8">serviceName</element>
<element msgAgreementorder = "8" msgAgreementlenght = "1">msgAgreement</element>

<element cprqorder = "9" cprqlenght = "8">cprq</element>
<element fkrzhorder = "10" fkrzhlenght = "20">fkrzh</element>
<element pjhmorder = "11" pjhmlenght = "8">pjhm</element>
<element jeorder = "12" jelenght = "20">je</element>
<element zfmmorder = "13" zfmmlenght = "20">zfmm</element>
<element jghorder = "14" jghlenght = "20">jgh</element>
<element yhdmorder = "15" yhdmlenght = "20">yhdm</element>

</msg>
</root>
*/
try {

Document doc = saxReader.read(new File(fileName));
Element root = doc.getRootElement();// 获取根节点
Element msg = root.element("msg");
Iterator itEle = msg.elementIterator("element");// 遍历msg节点下的所有element节点
while (itEle.hasNext()) {
Element element = (Element) itEle.next();
String value = element.getText();
//测试
System.out.println(value);
eleList.add(value);
Iterator itAttr = element.attributeIterator();// 遍历每一个element节点的所有属性
while (itAttr.hasNext()) {
Attribute attr = (Attribute) itAttr.next();
//String keyAttr = attr.getName();
String valueAttr = attr.getValue();
//测试
System.out.println(valueAttr);
eleList.add(valueAttr);
}
}

} catch (DocumentException e) {
e.printStackTrace();
}
return eleList;
}
有不明白的 在帮你分析

⑻ 刚学框架,xml配置文件是干什么用的,为什

xml配置文件被设计用来传输和存储数据,多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重新编译java文件,而且,这些配置信息放在一起,别的人来读你写的代码的时候,就方便了很多框架中的xml , 除了配置信息 , 还可以写一些对应关系,其实也是一种配置信息 .拿struts来说,xml配置的是页面url对应后台java类(action)的关系,在配置和修改的时候,只需要改一个xml文件就可以了,没必要一个个的查找java代码
java项目完成之后,每个模块应该都是独立的,模块之间的关系都可以使用xml来进行维护,spring就是这样的一个框架

一个好的项目,需要有良好的可拓展性,如果把所有的逻辑关系还有配置信息都写入代码中,会使程序的可拓展性变差,为了解决这个问题,xml就可以对整个项目进行调度(spring)
还有使用xml作为数据储存,不过用起来很少,多数还是用来存放配置信息

不同的xml起到不同的作用:比如说web项目的中的配置文件起到配置路径作用,以及跳转请求的作用。hibernate的配置文件起到配置连接数据库和相关属性以及对实体类和关系型数据库进行映射的的作用,spring的配置文件起到配置javabean的实例化以及整合框架的作用。还有一些xml文件中存放了一些数据供程序读取。
其实说到底配置文件就是存储数据用的相当于小型数据库,使用dom4j等一些读取写配置文件jar包就能实现对配置文件的读取,还有也可以跨语言的媒介!!

热点内容
服务器不用导轨怎么办 发布:2024-05-16 15:49:09 浏览:179
如何查看pppoe密码 发布:2024-05-16 15:38:02 浏览:172
云服务器成本价大概多少 发布:2024-05-16 15:33:42 浏览:445
正式服海岛冰茶怎么配置 发布:2024-05-16 15:25:39 浏览:289
安卓怎么注销探探 发布:2024-05-16 15:24:38 浏览:959
ata72x是多大的压缩机 发布:2024-05-16 15:07:59 浏览:94
安卓如何实现carplay的功能 发布:2024-05-16 15:02:54 浏览:713
网络如何接通外国游戏服务器 发布:2024-05-16 14:53:34 浏览:628
下载不是缓存 发布:2024-05-16 14:37:06 浏览:504
ssrpc端怎么删除服务器 发布:2024-05-16 13:53:14 浏览:235