1.XML配置文件怎么写,都有些什么属性
xml是类似这种的:<?xml version="1.0" encoding="gbk"?>
<body>xml是类似这种的:<?xml version="1.0" encoding="gbk"?>
<body>可以在节点中加属性例如:<body id = "" name = "">java代码解析一般用DOM4j.分两种类型的解析方式:1.DOM: Document Object Model 文档对象模型树形结构装载到内存中.完成后才开始解析.缺点:如果文件比较大,内存有压力,时间会延迟.优点:可以对树形结构做任何操作:加节点,删节点,遍历。
2.SAX: Simple API for XML流(Stream)的特征,解析可以立即开始.不保存数据. 对内存无压力.不能修改节点.适合大文件的解析.下面附上代码:public static List
1.XML格式是W3C的标准,各种平台通用,可移植性好。而Windows下的注册表文件,基本上是黑盒,也不可能被移植到非Windows环境下。
2.XML提供了一种树形层次结构,可以很方便的定位某一功能块。而INI文件不提供这种便利。
3.从写的角度看,几乎所有的应用程序都能处理XML文件,并且通过DOM提供的方法可以很快捷的对XML文件进行操作,而Reg只能用特定的软件进行读取操作,而INI很难进行方便的操作。
4.从读的角度看,XML文件提供了一种简洁的自解释的标记方法,几乎不需要说明文档,就能理解XML格式的配置文件的意义。而Reg很难辨识,INI虽然大多情况下比较容易理解,但不可能包含太多的内容。
5.XML高度可扩展,只要遵循一定的规则,XML的可扩展性几乎是无限的,而且这种扩展并不以结构混乱或影响基础配置为代价。而庞大的INI文件几乎一定是混乱的。
当然,即使XML有如此多的好处,它也存在一定的缺点,就是在表达较短的配置时,没有INI简练。而且因为它有比较严格的格式审查机制,容错性也不是特别好。但在绝大多数情况下,以XML文件做为配置文件,从长远来看,还是最好的选择。
类
public string GetConStr()
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("App_Data\\config.xml"));
XmlNode node1 = xmlDoc.SelectSingleNode("configuration/ConnectionStrings1/DataSource");
XmlNode node2 = xmlDoc.SelectSingleNode("configuration/ConnectionStrings1/uid");
XmlNode node3 = xmlDoc.SelectSingleNode("configuration/ConnectionStrings1/pwd");
string strcon = "Data Source=" + node1.InnerText + ";uid=" + node2.InnerText + ";pwd=" + node3.InnerText;
return strcon;
}
catch
{
Response.Redirect("Config.aspx");
return null;
}
}
调用
IConfig iconfig = new IConfig();
iconfig .GetConStr();
在我们的程序中,通常要有一些根据主机环境确定的变量。
比如数据库访问用户名和密码,不同的主机可能设置不一样。只要更改XML配置文件,就可以正常运行。
localhostsqlnameusernamepassword 上面这个myenv.xml配置文件一般是放在tomcat的WEB-INF/classes目录下。 我们编制一个Java程序直接读取,将dbhost dbuser dbpassword提取出来供其他程序访问数据库用。
目前使用SAX比较的多,与DOM主要区别是 SAX是一行一行读取XML文件进行分析,适合比较大文件,DOM是一次性读入内存,显然不能对付大文件。这里我们使用SAX解析,由于SAX解析器不断在发展,网上有不少文章是针对老版本的。
如果你使用JDK1.4 ,可以参考 使用SAX处理XML文档 一文。这里的程序是根据其改进并且经过实践调试得来的。
对上面myenv.xml读取的Java程序: import org.xml.sax.Attributes;import org.xml.sax.helpers.DefaultHandler;import org.xml.sax.SAXException; import java.util.Properties;//使用DefaultHandler的好处 是 不必陈列出所有方法,public class ConfigParser extends DefaultHandler {////定义一个Properties 用来存放 dbhost dbuser dbpassword的值private Properties props;private String currentSet;private String currentName;private StringBuffer currentValue = new StringBuffer();//构建器初始化propspublic ConfigParser() {this.props = new Properties();}public Properties getProps() {return this.props;} //定义开始解析元素的方法. 这里是将中的名称xxx提取出来.public void startElement(String uri, String localName, String qName, Attributes attributes)throws SAXException {currentValue.delete(0, currentValue.length());this.currentName =qName;}//这里是将之间的值加入到currentValuepublic void characters(char[] ch, int start, int length) throws SAXException { currentValue.append(ch, start, length);}//在遇到结束后,将之前的名称和值一一对应保存在props中public void endElement(String uri, String localName, String qName) throws SAXException {props.put(qName.toLowerCase(), currentValue.toString().trim());}} 上面的这个解析程序比较简单吧? 其实解析XML就是这么简单。 现在我们已经将dbhost dbuser dbpassword的值localhost sqlname username password提取了出来。
但是这只是在在解析器内部,我们的程序还不能访问。需要再编制一个程序。
import java.util.Properties;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import java.net.URL;public class ParseXML{//定义一个Properties 用来存放 dbhost dbuser dbpassword的值private Properties props; //这里的propspublic Properties getProps() {return this.props;} public void parse(String filename) throws Exception {//将我们的解析器对象化ConfigParser handler = new ConfigParser();//获取SAX工厂对象SAXParserFactory factory = SAXParserFactory.newInstance();factory.setNamespaceAware(false);factory.setValidating(false);//获取SAX解析SAXParser parser = factory.newSAXParser();//得到配置文件myenv.xml所在目录. tomcat中是在WEB-INF/classes//下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义URL confURL = BeansConstants.class.getClassLoader().getResource(filename);try{//将解析器和解析对象myenv.xml联系起来,开始解析 parser.parse(confURL.toString(), handler); //获取解析成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了props = handler.getProps();}finally{factory=null;parser=null;handler=null;}}} 由于我们的XML文件是使用最简单的形式 ,因此解析器相对简单,但是这已经足够对付我们的配置文件了。
<config>
<serv_ip>192.168.0.1</serv_ip>
<connect_time>30</connect_time>
<refresh_time>60</refresh_time>
<serv_port>3000</serv_port>
</config>;一般像这样就行了 很简单的
或者多个配置你可以加个item标签如:
<config>
<item>
<serv_ip>192.168.0.1</serv_ip>
<connect_time>30</connect_time>
<refresh_time>60</refresh_time>
<serv_port>3000</serv_port>
</item>
<item>
<serv_ip>192.168.0.2</serv_ip>
<connect_time>30</connect_time>
<refresh_time>60</refresh_time>
<serv_port>3000</serv_port>
</item>
</config>;假定xml文件路径为:path
读取和保存:
using system.xml;
XmlDocument xml = new XmlDocument();//声明xml
xml.Load(path);//按路径读xml文件
xmlnode root=xml.selectsinglenode("config");//指向根节点
xmlnode xn=root.selectsinglenode("serv_ip");//指向根节点下的serv_ip节点
string ip=xn.innertext;//读出里面的值 注意读取的是string 需要类型转换的话自己做
//修改:
xn.innertext="192.168.2.2";
xml.save(path);//保存更改到路径
配置文件是XML配置文件(配置) config文件中会有像许多条目
abcd
xyz
choise1
1. NSIS共有4 XML的插件可供选择; NsisXML(由Wizou).xML插件,NsisXML(乔尔)和NSXML 使用NsisXML(由Wizou):Outfile "$%temp%\NSISTest.exe"
RequestExecutionLevel user
Installdir "$Temp"
Showinstdetails show
!include LogicLib.nsh
Page InstFiles
!define XMLFILE "$instdir\myxml.xml"
Section
StrCpy $9 "Did not exist"
nsisXML::create
nsisXML::load "${XMLFILE}"
${If} $0 = 0
;build a new basic XML file:
nsisXML::create
nsisXML::createProcessingInstruction "xml" 'version="1.0" encoding="UTF-8" standalone="yes"'
nsisXML::appendChild
nsisXML::release $2
${EndIf}
nsisXML::select '/choise'
${If} $2 = 0
StrCpy $1 $0
nsisXML::createElement "choise"
nsisXML::appendChild
${Else}
nsisXML::getText
StrCpy $9 $3
${EndIf}
DetailPrint "Old value: $9"
System::Call 'kernel32::GetTickCount()i.r5' ;Get some "random" value to save
nsisXML::setText "$5"
nsisXML::release $2
nsisXML::save "${XMLFILE}"
nsisXML::release $0
DetailPrint "Saved new value: $5"
SectionEnd
2. 在优先次运行我得到:Old value: Did not exist
Saved new value: 709289703
Completed
并在第二次运行我得到:Old value: 709289703
Saved new value: 709308687
Completed
转载请注明出处育才学习网 » xml怎么写配置文件
本文主要为您介绍宋茜韩文怎么写,内容包括宋茜韩语怎么写,宋茜的韩文怎么写,我爱宋茜的韩文怎么写。송치엔宋茜(Victoria),1987年2月2日出生于山东省青岛市,演员、歌手、模特、主持人。2007年,宋茜在北京市舞蹈大赛中被韩国
本文主要为您介绍审计评价怎么写,内容包括审计评价怎么写,审计评价怎么写,浅议如何写好审计报告中的审计评价。可以看出审计评价是审计报告中重要组成部分。审计机关审计评价是按照确定的审计目标以审计结果为基础,对被审计单位财政、财务收
本文主要为您介绍课题推荐人意见怎么写,内容包括科研项目推荐意见怎写,科研项目推荐意见怎写,论文推荐意见怎么写。keenteeth(站内联系TA)150字?我给你写一个:“***是目前国内外有机合成领域中的研究热点之一。本课题选题先进,有重要的研究
本文主要为您介绍职业分析小结怎么写,内容包括职业生涯规划自我分析小结,职业分析小结怎么写,职业生涯条件分析小结怎么写。原发布者:xh101129职业生涯规划个人分析专业:金融学号:100702103姓名:曹晓华为了更好的了解自己的性格及职业方面的倾
本文主要为您介绍销售年度总结怎么写,内容包括销售年终总结怎么写,个人年度销售总结怎么写,销售人员年度个人总结。概述年度销售任务总体完成情况列出本年度公司下达的销售任务、实际销量、达成率、上年度同期销量、同比增长率等等。这部分
本文主要为您介绍怎么写绝命诗,内容包括近代著名的绝命诗,《绝命诗》,谁知道什么绝命诗。《刘继兴读史》一书中记载道:汪精卫曾写过两首绝命诗。第一首是他年轻时舍生忘死刺杀清廷头号人物摄政王载沣未遂入狱后所写:“慷慨歌燕市,从容
本文主要为您介绍柔的繁体字怎么写,内容包括柔繁体字怎么写,柔字的繁体字怎么写,千依柔的繁体字怎么写。
本文主要为您介绍六字真言藏语怎么写,内容包括六字真言藏文怎么写,六字真言的正确写法和读音是什么,藏族的六字真言用汉文怎么写。是藏传佛教中最尊崇的一句咒语,密宗认为这是秘密莲花部的根本真言,也即莲花部观世音的真实言教,故称六字真言。
本文主要为您介绍石字古文怎么写,内容包括以下四个字的古文怎么写,'石'字的古文与繁体怎么写,古文翻译。【原文】 欧阳公四岁而孤,家贫无资。太夫人以荻画地,教以书字。多诵古人篇章。及其稍长,而家无书读,就闾里士人家借而读之,或因而
本文主要为您介绍小篆学字怎么写,内容包括学字篆书怎么写,小篆学怎么写,小篆"学"字。
本文主要为您介绍设计概述怎么写,内容包括设计概述怎么写,建筑设计概况怎么写,设计说明怎么写。建筑设计概况包括建筑名称、建设地点、建设单位、建筑面积、建筑基底面积、建筑工程等级、设计使用年限、建筑层数和建筑高度、防火设汁建筑分
本文主要为您介绍word里怎么写分数,内容包括word中怎么输入分数的两种方法,怎样用word写分数,Word如何写分数。word中输入分数方法一:步骤一:同时按下“CTRL”+“F9”,会出现如下图的大括号(有些电脑F9键需要组合键才能实现功能,如果没出现
本文主要为您介绍单位与单位之间的函怎么写,内容包括行政单位之间的函的格式,单位对单位函件怎么写,行政单位之间的函的格式。格式:(一)标题制发机关+事由+文种:《长沙XX公司关于请求批准成本管理费用申请的函》2、事由+文种:《关于报送XX部门事
本文主要为您介绍沁字的繁体字怎么写,内容包括沁的繁体字怎么写,沁字繁体字怎么写,沁字的繁体字怎么写。文字纯转换: 沁雨 生成的新网名: ゞ灬沁雨╰→ ♂沁雨♂ 〃沁雨ぐ ╰→沁雨 ♀沁雨♂ ♀沁雨♀ ㊣沁雨㊣ ┽→沁雨 ……沁雨** ▃
本文主要为您介绍mybatis的配置文件怎么写,内容包括mybatis的配置文件怎么写,mybatis的配置文件怎么写,mybatis主配置文件怎么写。在src/main/resource中创建MyBatis配置文件:mybatis-config.xml。typeAliases标签:给类
本文主要为您介绍struts2配置文件怎么写,内容包括简述Struts2的配置文件包括哪些元素,请帮我详细解释Struts2的配置文件,struts配置文件的文档声明部分怎么写。package元素package用来管理action:使用了面向对象的思想属性:name:用来定义包名,
本文主要为您介绍ssh的配置文件怎么写,内容包括ssh配置文件怎么写,ssh框架配置文件怎么写,ssh框架配置文件怎么写。讲不清楚,给你我的SPRING模板,你复制到eclipse里好好看看<?xml version="1.0" encoding="UTF-
本文主要为您介绍mapper.xml怎么写,内容包括mapper.xml怎么写当前时间,mybatis进行多表新增,修改的Mapper.xml怎么写,mybatis的mapper.xmlforeach怎么写。修改数据库连接参数加上allowMultiQueries=true,如:hikariConfig.security.jdbcUrl=jd
本文主要为您介绍struts2xml怎么写,内容包括求struts2struts.xml文件写法,struts2的struts.xml文件怎么配置,谁能帮忙说下struts2中webxml跟strutsxml的工作顺序就是。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apa
本文主要为您介绍xml怎么写注释,内容包括xml文件怎么注释多行,xml文件的注释,怎么给XML文件写注释,害怕时间久了,忘记某些属性是什么意思。很简单, XML是由序言和文档元素组成的。 序言包括: 1.声明:文档的第一行,它说明这是一个XML文档。 [可
本文主要为您介绍xml代码怎么写,内容包括xml代码在哪里写,xml代码在哪里写,怎么用XML写一段介绍自己的代码。不过这些规则通常很简单,易于理解。下面我们就将描述这些规则。XML文档版本XML文档的第一行用来定义该文档使用的XML的版本,下面代
本文主要为您介绍web.xml怎么写,内容包括JSP新手求助:最简单的web.xml应该怎么写,spring怎么写web.xml,web.xml如何配置。spring有三种启动方式,使用ContextLoaderServlet,ContextLoaderListener和ContextLo