[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

XML Document Loading

Posted on 2006-06-11
4
Medium Priority
?
243 Views
Last Modified: 2010-04-16
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MSXML2;

namespace ManipulateXML
{
    public partial class Form1 : Form
    {
        private DOMDocument40 doc;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string search = listBox1.SelectedItem.ToString();
            IXMLDOMNode nd = doc.selectSingleNode("bookstore/book[@ISBN=' " + search + " ' ]");
            MessageBox.Show(nd.text);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            doc = new DOMDocument40();
            doc.load("books.xml");
            IXMLDOMNodeList nodes;
            nodes = doc.selectNodes("bookstore/book");
            IXMLDOMNode node = nodes.nextNode();

            while (node != null)
            {
                listBox1.Items.Add(node.attributes.getNamedItem("ISBN").text);
                node = nodes.nextNode();
            }
        }
    }
}

this is a pretty simple code to understand. Button click loads an XML document called books.xml and I try to get information about the ISBN of all book nodes.
I compile and it compiles but on button click nothing happens. When i ran debugger I saw that 'while (node != null ' is a false statement. Please help
0
Comment
Question by:deersuper
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 13

Expert Comment

by:dungla
ID: 16883089
Please paste your xml file here
0
 
LVL 13

Expert Comment

by:dungla
ID: 16883093
And you can use System.XML instead of MSXML2 if no special purpose.
0
 
LVL 2

Author Comment

by:deersuper
ID: 16883580
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-816003-11-0">
    <title>title 1</title>
    <author>
      <first-name>ben </first-name>
      <last-name>franklin</last-name>
    </author>
    <price>899</price>
  </book>

  <book genre="novel" publicationdate="1967" ISBN="1-768503-11-0">
    <title>title 2</title>
    <author>
      <first-name>usman </first-name>
      <last-name>lakjai</last-name>
    </author>
    <price>299</price>
  </book>

  <book genre="sex" publicationdate="1381" ISBN="1-300618-11-0">
    <title>chudai</title>
    <author>
      <first-name>azam </first-name>
      <last-name>franklin</last-name>
    </author>
    <price>999</price>
  </book>
</bookstore>

the code book i am using specifically asks for using msxml2. thats why I used it !!!!!! thanks
0
 
LVL 52

Accepted Solution

by:
Carl Tawn earned 1000 total points
ID: 16883983
As mentioned earlier, you'd be better off simply including the System.Xml namespace rather than using the older MSXML2.

Then you can use something more like:

        private void button1_Click(object sender, EventArgs e)
        {
            doc = new XmlDocument();
            doc.Load("C:\\Test.xml");

            XmlNodeList nodes = doc.SelectNodes("bookstore/book");

            foreach (XmlNode node in nodes)
                listBox1.Items.Add(node.Attributes["ISBN"].InnerText);
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string search = ((ListBox)sender).SelectedItem.ToString();
            XmlNode nd = doc.SelectSingleNode("bookstore/book[@ISBN='" + search + "']");

            MessageBox.Show(nd.InnerText);
        }
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…
Suggested Courses

656 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