c# 读取XML文件的示例
程序员文章站
2022-03-11 10:11:34
如下xml文件:(算是一个属性值比较多的xml文件。。。读取该xml算是我在公司实际的一个任务)...
如下xml文件:(算是一个属性值比较多的xml文件。。。读取该xml算是我在公司实际的一个任务)
<?xml version="1.0" encoding="utf-8"?> <serverset> <devset printnumber="1" controlbarcode="" controlebarcode="" controlpix="" printerport="0" isshowareaname="0" printerportdata="127.0.0.1" spareprinternumber="1" spareprinternumber2="1" productionareaname="1" printtype="qt;1b;1k;1l;1m;" printdevtype="0" logicaldpiw="" logicaldpih="" baudrate="4800" qzheight="1" qzwaittime="45" filewaittime="45" enablestwoway="1" commandtype="0"/> <devset printnumber="2" controlbarcode="" controlebarcode="" controlpix="" printerport="0" isshowareaname="0" printerportdata="127.0.0.211" spareprinternumber="1" spareprinternumber2="1" productionareaname="" printtype="" printdevtype="0" logicaldpiw="" logicaldpih="" baudrate="4800" qzheight="1" qzwaittime="45" filewaittime="45" enablestwoway="0" commandtype="0"/> <devset printnumber="3" controlbarcode="" controlebarcode="" controlpix="" printerport="0" isshowareaname="0" printerportdata="127.0.0.3" spareprinternumber="1" spareprinternumber2="1" productionareaname="" printtype="" printdevtype="0" logicaldpiw="" logicaldpih="" baudrate="4800" qzheight="1" qzwaittime="45" filewaittime="45" enablestwoway="0" commandtype="0"/> <devset printnumber="4" controlbarcode="" controlebarcode="" controlpix="" printerport="3" isshowareaname="0" printerportdata="usb2" spareprinternumber="1" spareprinternumber2="1" productionareaname="" printtype="" printdevtype="2" logicaldpiw="" logicaldpih="" baudrate="4800" qzheight="1" qzwaittime="45" filewaittime="45" enablestwoway="1" commandtype="0"/> <ortherinfo printmode="1" printtimeconfig="5" filteremptyrows="0" printfilepath="d:/choice/ftp/tiktenprint" backfilepath="d:/choice/ftp/prnbakdir" readbohprintconfig="1" condingformat="0" isshowchangebill="0" isrunupgrade="0" singleturnspacetime="30" storeprnpath="127.0.0.1" ftpport="" bcode="1020001" uploadversionaddress="" uploadversionport="0"/> </serverset>
创建一个类writexml用来封装读取xml的和属性值方法:代码如下
class readxml { /// <summary> /// 第一根节点的属性 /// </summary> public string printnumber { get; set; } public string controlbarcode { get; set; } public string controlebarcode { get; set; } public string controlpix { get; set; } public string printerport { get; set; } public string isshowareaname { get; set; } public string printerportdata { get; set; } public string spareprinternumber { get; set; } public string spareprinternumber2 { get; set; } public string productionareaname { get; set; } public string printtype { get; set; } public string printdevtype { get; set; } public string logicaldpiw { get; set; } public string logicaldpih { get; set; } public string baudrate { get; set; } public string qzheight { get; set; } public string qzwaittime { get; set; } public string filewaittime { get; set; } public string enablestwoway { get; set; } public string commandtype { get; set; } /// <summary> /// 第二根节点的属性 /// </summary> public string printmode { get; set; } public string printtimeconfig { get; set; } public string filteremptyrows { get; set; } public string printfilepath { get; set; } public string backfilepath { get; set; } public string readbohprintconfig { get; set; } public string condingformat { get; set; } public string isshowchangebill { get; set; } public string isrunupgrade { get; set; } public string singleturnspacetime { get; set; } public string storeprnpath { get; set; } public string ftpport { get; set; } public string bcode { get; set; } public string uploadversionaddress { get; set; } public string uploadversionport { get; set; } public void read() { xmldocument xmldoc = new xmldocument(); xmldoc.load(@"d:\choic\printconfig.xml");//读取xml文件 xmlnode xn = xmldoc.selectsinglenode("serverset"); xmlnodelist xnlnl = xn.selectnodes("devset");//得到根节点 foreach (xmlnode xnl in xnlnl)//遍历devset { writeandread wr = new writeandread(); xmlelement xe = (xmlelement)xnl; wr.printnumber = xe.getattribute("printnumber").tostring(); wr.controlbarcode = xe.getattribute("controlbarcode").tostring(); wr.controlebarcode = xe.getattribute("controlebarcode").tostring(); wr.controlpix = xe.getattribute("controlpix").tostring(); wr.printerport = xe.getattribute("printerport").tostring(); wr.isshowareaname = xe.getattribute("isshowareaname").tostring(); wr.printerportdata = xe.getattribute("printerportdata").tostring(); wr.spareprinternumber = xe.getattribute("spareprinternumber").tostring(); wr.spareprinternumber2 = xe.getattribute("spareprinternumber2").tostring(); wr.productionareaname = xe.getattribute("productionareaname").tostring(); wr.printtype = xe.getattribute("printtype").tostring(); wr.printdevtype = xe.getattribute("printdevtype").tostring(); wr.logicaldpiw = xe.getattribute("logicaldpiw").tostring(); wr.logicaldpih = xe.getattribute("logicaldpih").tostring(); wr.baudrate = xe.getattribute("baudrate").tostring(); wr.qzheight = xe.getattribute("qzheight").tostring(); wr.qzwaittime = xe.getattribute("qzwaittime").tostring(); wr.filewaittime = xe.getattribute("filewaittime").tostring(); wr.enablestwoway = xe.getattribute("enablestwoway").tostring(); wr.commandtype = xe.getattribute("commandtype").tostring(); console.writeline("printnumber:" + wr.printnumber + "\tcontrolbarcode:" + wr.controlbarcode + "\tcontrolebarcode:" + wr.controlebarcode + "\tcontrolpix:" + wr.controlpix + "\tprinterport:" + wr.printerport + "\tisshowareaname:" + wr.isshowareaname + "\tprinterportdata:" + wr.printerportdata + "\tspareprinternumber:" + wr.spareprinternumber + "\tspareprinternumber2:" + wr.spareprinternumber2 + "\tproductionareaname:" + wr.productionareaname + "\tprinttype:" + wr.printtype + "\tprintdevtype:" + wr.printdevtype + "\tlogicaldpiw:" + wr.logicaldpiw + "\tlogicaldpih:" + wr.logicaldpih + "\tbaudrate:" + wr.baudrate + "\tqzheight:" + wr.qzheight + "\tqzwaittime:" + wr.qzwaittime + "\tfilewaittime:" + wr.filewaittime + "\tenablestwoway:" + wr.enablestwoway + "\tcommandtype:" + wr.commandtype); console.writeline(); } xmlnodelist xnlnl1 = xn.selectnodes("ortherinfo");//得到第二个根节点 foreach (xmlnode xnl in xnlnl1)//ortherinfo { writeandread wr = new writeandread(); xmlelement xe = (xmlelement)xnl; wr.printmode = xe.getattribute("printmode").tostring(); wr.printtimeconfig = xe.getattribute("printtimeconfig").tostring(); wr.filteremptyrows = xe.getattribute("filteremptyrows").tostring(); wr.printfilepath = xe.getattribute("printfilepath").tostring(); wr.backfilepath = xe.getattribute("backfilepath").tostring(); wr.readbohprintconfig = xe.getattribute("readbohprintconfig").tostring(); wr.condingformat = xe.getattribute("condingformat").tostring(); wr.isshowchangebill = xe.getattribute("isshowchangebill").tostring(); wr.isrunupgrade = xe.getattribute("isrunupgrade").tostring(); wr.singleturnspacetime = xe.getattribute("singleturnspacetime").tostring(); wr.storeprnpath = xe.getattribute("storeprnpath").tostring(); wr.ftpport = xe.getattribute("ftpport").tostring(); wr.uploadversionaddress = xe.getattribute("uploadversionaddress").tostring(); wr.uploadversionport = xe.getattribute("uploadversionport").tostring(); console.writeline("printmode:" + wr.printmode + "\tprinttimeconfig:" + wr.printtimeconfig + "\tfilteremptyrows:" + wr.filteremptyrows + "\tprintfilepath:" + wr.printfilepath + "\tbackfilepath:" + wr.backfilepath + "\treadbohprintconfig:" + wr.readbohprintconfig + "\tcondingformat:" + wr.condingformat + "\tisshowchangebill:" + wr.isshowchangebill + "\tisrunupgrade:" + wr.isrunupgrade + "\tsingleturnspacetime:" + wr.singleturnspacetime + "\tstoreprnpath:" + wr.storeprnpath + "\tftpport:" + wr.ftpport + "\tuploadversionaddress:" + wr.uploadversionaddress + "\tuploadversionport:" + wr.uploadversionport); } }
在控制台上运行。。
class program { static void main(string[] args) { readxml rx = new readexml(); rx.read(); console.read(); } }
运行结果如下:
好了,以上就是读取该xml文件以及实际运行结果图。。。。。。。
大牛们就当看个笑话啦!当然有哪里不对的地方或者可以改进的方法可以提出来。。。。对于一些没用读取过xml文件的程序猿们。。可供参考
以上就是c# 读取xml文件的示例的详细内容,更多关于c# 读取xml的资料请关注其它相关文章!