Solved

XML data in ASP.NET

Posted on 2004-10-13
7
720 Views
Last Modified: 2013-11-25
Hi

I have to create a FAQ page in ASP.NET
for example

i need to design the below format of header and listitems
where header is text and listeitems are hyperlinks

but i dont want to hard code Header or the listitems text or its Url's
i want all to be writen in XML file such that ASP.NET reads XML file and generates this output
later i can add/remove Header and URL from XML file




New to Programming   (header)
    o How to Start      (listitems)
    o What are the Requirements

Allready a member
    o How to renew my membership
    o What are the payment methods
.....
....
...
   

Please help me how to design the XML file structure and ASP.NET code which reads from it and displays in above format
0
Comment
Question by:DOT_NET
7 Comments
 
LVL 17

Expert Comment

by:AerosSaga
ID: 12304144
0
 

Author Comment

by:DOT_NET
ID: 12304362
can someone give me working sample
0
 
LVL 2

Accepted Solution

by:
diablocute earned 125 total points
ID: 12305204
(1)Hi,there. I'm assuming that your xml file will look similar to below
<FAQ>
    <Header Name="New to programming">
        <listitem Url="/howtostart.aspx" Name="How to start" />
    </Header>
    <Header Name="Aleady a member">
        <listitem Url="/Howtorenew.aspx" Name="How to renew membership"/>
    </Header>
</FAQ>

(2) In serverside
// Create an xml document & Load the XMl from the file
XmlDocument doc = new XmlDocument();                  
doc.Load(filePath); // path of your XML file

// Retrieve all header from the xml.
XmlNodeList headers  = doc.SelectNodes("FAQ/Header");
StringBuilder headerString = new StringBuilder();

// Iterate through all the headers
foreach ( XmlNode headerNode in headers )
{
// Add headername to the string.
headerString.Append("<h2>" ).Append(headerNode.Attributes["Name"].Value ).Append("</h2><ul>");

// Get all listitems in the current header.
XmlNodeList listitems = headerNode.SelectNodes("listitem");

// Loop through all listitems in the current header and add to the string.
foreach ( XmlNode listNode in listitems )
{
   headerString.Append("<LI><a href=").Append(listNode.Attributes ["Url"].Value).Append( ">").Append( listNode.Attributes["Name"].Value).Append("</a>");
}
headerString.Append("</ul>");
// Pass headerString to the page output using Response.Write
// or assigning into a web control (such as label, panel, etc)
============================================
fyi, I prefer to use StringBuilder, but you can always use string. (Be sure to add Using System.Text if you want to use StringBuilder)
hope this is what you're looking for =)


0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 2

Expert Comment

by:diablocute
ID: 12305211
oops, i forgot to add one more  }
after headerString.Append("</ul>");
0
 
LVL 10

Expert Comment

by:jnhorst
ID: 12305241
Here's another approach:  With your ASP.NET project open, click the Project menu in VS and select Add New Item.  Select the Dataset icon in the dialog and give the dataset a filename like FAQ.xsd.  You will get a blank yellowish designer.  In this designer, right click and select Add >> New Element.  You will get a box with two columns.  At the top the name will be element1.  Change this to Header.  Then add some columns that would belong to a Header table (if you had one).  The left column of the box is for the column name; the right for the data type.  Do the same thing and create a ListItems element.  Make sure the Header element has a field that will be a unique key to each Header.  Then make sure the ListItems element has a column that will reference the Header's key.  These elements are defined in an xml schema that ADO.NET uses to create an ADO.NET dataset with data tables for each of these elements.

After creating the elements for your Header and ListItems, right click the dataset designer and select Add >> New Relation.  This is where you join the two tables on the Header key.

Once you have done this, you can add this dataset to a page and add rows to the Header and ListItems data tables.  If you want to save this info as xml, you call the dataset's WriteXml() method, passing it a file name to write the xml to.  Conversely, if you want to read that xml back into the dataset, you call ReadXml(), passing it the file name.

John
0
 
LVL 8

Expert Comment

by:razo
ID: 12305520
what u can do is use an xslt file that define the html format of each element
and the use the xml control of the .net to load both the xml file and the xslt trasnformation
0
 

Author Comment

by:DOT_NET
ID: 12310253
Hi  diablocute
i'll try your code
and get back to u
thanks :)
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now