i have xml document looks
<?xml version="1.0" encoding="utf-8" ?> <event> <name>test event</name> <date>07/09/1997</date> <description>birthday</description> <blogurl></blogurl> </event>
i want grab these fields , display them in asp:labels
this code behind
protected void page_load(object sender, eventargs e) { xmldocument pressrelease = new xmldocument(); pressrelease.load(server.mappath("~/presssection.xml")); xmlnodelist name = pressrelease.getelementsbytagname("name"); currenteventname.text = name.tostring(); }
but displays in label
system.xml.xmlelementlist
not sure i'm doing wrong.
as name might suggest and, the documentation tells you, method returns:
an xmlnodelist containing list of matching nodes. if no nodes match name, returned collection empty.
you need iterate list, or take first item if you're sure 1 there:
var names = pressrelease.getelementsbytagname("name"); currenteventname.text = names[0].value;
that said, linq xml far nicer api, encourage learn more it:
var doc = xdocument.load(server.mappath("~/presssection.xml")); currenteventname.text = (string)doc.descendants("name").single();
Comments
Post a Comment