Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

XML data in ASP.NET

Posted on 2004-10-13
7
Medium Priority
?
743 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 500 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
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
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

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
Suggested Courses

927 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