XML

J

Julian

I am looking for some good examples on how to read
information from an XML file. I am using VB.NET for
pocket PC 2003. I am trying to make an application for my
pocket pc that reads and writes data to an XML file. If
this is not the right place to post this question, please
point me in the right direction. Thanks

~Julian
 
A

AlexB

I don't know if it's different in Pocket PC but in Visual
Studio there's a namespace called system.xml that has all
of the classes for working with xml. For text you'll want
to use XMLTextReader/Writer. On-line help worked pretty
good for me. Here's some code to read an xml file:


Imports System
Imports System.IO
Imports System.Xml

'Reads an XML document
Public Class Sample
Private Const filename As String = "items.xml"

Public Shared Sub Main()
Dim reader As XmlTextReader = Nothing

Try
' Load the reader with the data file and
ignore all white space nodes.
reader = New XmlTextReader(filename)
reader.WhitespaceHandling =
WhitespaceHandling.None

' Parse the file and display each of the nodes.
While reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
Console.Write("<{0}>", reader.Name)
Case XmlNodeType.Text
Console.Write(reader.Value)
Case XmlNodeType.CDATA
Console.Write("<![CDATA[{0}]]>",
reader.Value)
Case XmlNodeType.ProcessingInstruction
Console.Write("<?{0} {1}?>",
reader.Name, reader.Value)
Case XmlNodeType.Comment
Console.Write("<!--{0}-->",
reader.Value)
Case XmlNodeType.XmlDeclaration
Console.Write("<?xml version='1.0'?
Case XmlNodeType.Document
Case XmlNodeType.DocumentType
Console.Write("<!DOCTYPE {0}
[{1}]", reader.Name, reader.Value)
Case XmlNodeType.EntityReference
Console.Write(reader.Name)
Case XmlNodeType.EndElement
Console.Write("</{0}>",
reader.Name)
End Select
End While

Finally
If Not (reader Is Nothing) Then
reader.Close()
End If
End Try
End Sub 'Main
End Class 'Sample
[C#]
using System;
using System.IO;
using System.Xml;

public class Sample {

private const String filename = "items.xml";

public static void Main() {

XmlTextReader reader = null;

try {

// Load the reader with the data file and ignore
all white space nodes.
reader = new XmlTextReader(filename);
reader.WhitespaceHandling =
WhitespaceHandling.None;

// Parse the file and display each of the nodes.
while (reader.Read()) {
switch (reader.NodeType) {
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.Write(reader.Value);
break;
case XmlNodeType.CDATA:
Console.Write("<![CDATA[{0}]]>",
reader.Value);
break;
case XmlNodeType.ProcessingInstruction:
Console.Write("<?{0} {1}?>", reader.Name,
reader.Value);
break;
case XmlNodeType.Comment:
Console.Write("<!--{0}-->", reader.Value);
break;
case XmlNodeType.XmlDeclaration:
Console.Write("<?xml version='1.0'?>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
Console.Write("<!DOCTYPE {0} [{1}]",
reader.Name, reader.Value);
break;
case XmlNodeType.EntityReference:
Console.Write(reader.Name);
break;
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name);
break;
}
}
}

finally {
if (reader!=null)
reader.Close();
}
}
} // End class
[Visual Basic, C#] The sample uses the file items.xml.
<?xml version="1.0"?>
<!-- This is a sample XML document -->
<!DOCTYPE Items [<!ENTITY number "123">]>
<Items>
<Item>Test with an entity: &number;</Item>
<Item>test with a child element <more/> stuff</Item>
<Item>test with a CDATA section <![CDATA[<456>]]>
def</Item>
<Item>Test with an char entity: A</Item>
<!-- Fourteen chars in this element.-->
<Item>1234567890ABCD</Item>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top