c# - .NET read XML and select elements based on condition -
c# - .NET read XML and select elements based on condition -
i'm working on asp.net mvc application. in application, have xml file save info available next run of app.
here sample of xml:
<data> <event> <id><![cdata[38079482]]></id> <start_date><![cdata[2014-10-21 09:45]]></start_date> <end_date><![cdata[2014-10-21 11:00]]></end_date> <text><![cdata[38079482]]></text> <engineer_id><![cdata[20602]]></engineer_id> <color><![cdata[#00cccc]]></color> <status><![cdata[dispatched]]></status> <customer><![cdata[reed hayes]]></customer> <number><![cdata[689-761-834 ]]></number> <category><![cdata[n/a]]></category> </event> <event> <id><![cdata[38129667]]></id> <start_date><![cdata[2014-10-20 11:20]]></start_date> <end_date><![cdata[2014-10-20 13:00]]></end_date> <text><![cdata[38129667]]></text> <engineer_id><![cdata[20525]]></engineer_id> <color><![cdata[red]]></color> <status><![cdata[cancelled]]></status> <customer><![cdata[gervase griffin]]></customer> <number><![cdata[400-401-401 ]]></number> <category><![cdata[n/a]]></category> </event> </data> in controller, parse file , send "event" elements view have "start_date" today's current date.
controller method looks far:
public void gatherxml() { string path = httpcontext.server.mappath("~/content/tasks.xml"); xmldocument doc = new xmldocument(); doc.load(path); doc.preservewhitespace = true; viewbag.xml = doc.innerxml; }
you can utilize linq xml query xml construction , elements need.
here illustration find elements specific date:
var doc = xdocument.load("xmlfile1.xml"); var res = new xdocument (new xelement("data", (from in doc.root.elements() i.element(xname.get("start_date")).value == "2014-10-21 09:45" select i))); var xml = res.tostring(); // reduced xml containing matching element you utilize xpath , older xmldocument api query document:
var xdoc = new xmldocument(); xdoc.load("xmlfile1.xml"); xmlnode root = xdoc.documentelement; // select nodes match date status xmlnodelist node = root.selectnodes( "descendant::event[start_date='2014-10-21 09:45']"); c# asp.net xml
Comments
Post a Comment