c# - How to place DisplayName into Variable -
i'm trying something, may extremely simple please bear me, want 'displayname' xml file string in c# code. here's have:
this c#2.0 in vs2005
xml:
<monitorscope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" id="system" xmlns="http://tempuri.org/xmlschema.xsd"> <personalsafety> <monitorresponserecord enabled="false" displayname="valvefailureatcentralposition"> <expressionmonitor> <postalarm> <alarmname>valve_position_fault</alarmname> <parameter1> sensor position = {x}</parameter1> <parameter2> sensor position = {x}</parameter2> <parameter3> sensor position = {x}</parameter3> </postalarm> </expressionmonitor> </monitorresponserecord> <monitorresponserecord ... ... ...> ... ... ... ... , on 1600 times. in c# code i've attempted following no avail: c#:
public class alarmrecord { /// <remarks/> public string pmalarm; /// <remarks/> public string parameter1; /// <remarks/> public string parameter2; /// <remarks/> public string parameter3; /// <remarks/> public string displayname; } protected void onpostalarm(postalarm postalarm) { try { alarmrecord alarmrecord = new alarmrecord(); alarmrecord.pmalarm = postalarm.alarmname; alarmrecord.parameter1 = postalarm.parameter1; alarmrecord.parameter2 = postalarm.parameter2; alarmrecord.parameter3 = postalarm.parameter3; string filename = "umsm.009.8root.xml"; string fullpath; fullpath = path.getfullpath(filename); xmltextreader reader = new xmltextreader(new stringreader(fullpath)); system.xml.xpath.xpathdocument docnav = new system.xml.xpath.xpathdocument(reader); system.xml.xpath.xpathnavigator q = docnav.createnavigator(); system.xml.xpath.xpathexpression exe = q.compile("monitorresponserecord/@displayname"); alarmrecord.displayname = convert.tostring(q.evaluate(exe)); alarms.enqueue( alarmrecord ); } catch (exception e) { log.write(e); onunknownresponse(postalarm); } } basically current issue durring debug issue i'm noticing in line 'reader' initialized... program throws exception here
you use xmlreader:
protected void onpostalarm(postalarm postalarm) { alarmrecord record = null; list<alarmrecord> recordlist = new list<alarmrecord>(); using(xmlreader reader = xmlreader.create("xml/bin/umsm.009.8root.xml")) { while (reader.read()) { if (reader.nodetype == xmlnodetype.element) { switch (reader.name) { case "monitorresponserecord": record = new alarmrecord(); recordlist.add(record); reader.movetoattribute("displayname"); record.displayname = reader.value; break; case "alarmname": record.pmalarm = reader.readstring(); break; case "parameter1": record.parameter1 = reader.readstring(); break; case "parameter2": record.parameter2 = reader.readstring(); break; case "parameter3": record.parameter3 = reader.readstring(); break; } } } }
Comments
Post a Comment