Csharp/C Sharp/XML/XML Read
Содержание
Access Attributes
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
class Program {
static void Main(string[] args) {
XmlDocument documentation = new XmlDocument();
documentation.Load("DocumentedClasses.xml");
XmlNodeList memberNodes = documentation.SelectNodes("//member");
List<XmlNode> typeNodes = new List<XmlNode>();
foreach (XmlNode node in memberNodes) {
if (node.Attributes["name"].Value.StartsWith("T")) {
typeNodes.Add(node);
}
}
foreach (XmlNode node in typeNodes) {
Console.WriteLine("- {0}", node.Attributes["name"].Value.Substring(2));
}
}
}
If a Xml node Has Attributes
using System;
using System.Xml;
using System.IO;
using System.Text;
class MainClass {
private static void Main() {
FileStream fs = new FileStream("products.xml", FileMode.Create);
XmlWriter w = XmlWriter.Create(fs);
w.WriteStartDocument();
w.WriteStartElement("products");
w.WriteStartElement("product");
w.WriteAttributeString("id", "1001");
w.WriteElementString("productName", "Gourmet Coffee");
w.WriteElementString("productPrice", "0.99");
w.WriteEndElement();
w.WriteStartElement("product");
w.WriteAttributeString("id", "1002");
w.WriteElementString("productName", "Blue China Tea Pot");
w.WriteElementString("productPrice", "102.99");
w.WriteEndElement();
w.WriteEndElement();
w.WriteEndDocument();
w.Flush();
fs.Close();
fs = new FileStream("products.xml", FileMode.Open);
XmlReader r = XmlReader.Create(fs);
while (r.Read()) {
if (r.NodeType == XmlNodeType.Element) {
Console.WriteLine("<" + r.Name + ">");
if (r.HasAttributes) {
for (int i = 0; i < r.AttributeCount; i++) {
Console.WriteLine("\tATTRIBUTE: " +
r.GetAttribute(i));
}
}
} else if (r.NodeType == XmlNodeType.Text) {
Console.WriteLine("\tVALUE: " + r.Value);
}
}
}
}
Illustrates the XmlTextReader class
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example20_2.cs illustrates the XmlTextReader class
*/
using System;
using System.Xml;
public class Example20_2
{
// Display a node and its children
private static void AddChildren(XmlNode xnod, int level)
{
XmlNode xnodWorking;
String pad = new String(" ", level * 2);
Console.WriteLine(pad + xnod.Name + "(" + xnod.NodeType.ToString()
+ ": " + xnod.Value + ")");
// if this is an element, extract any attributes
if (xnod.NodeType == XmlNodeType.Element)
{
XmlNamedNodeMap mapAttributes = xnod.Attributes;
for(int i=0; i<mapAttributes.Count; i+=1)
{
Console.WriteLine(pad + " " + mapAttributes.Item(i).Name
+ " = " + mapAttributes.Item(i).Value);
}
}
// call recursively on all children of the current node
if (xnod.HasChildNodes)
{
xnodWorking = xnod.FirstChild;
while (xnodWorking != null)
{
AddChildren(xnodWorking, level+1);
xnodWorking = xnodWorking.NextSibling;
}
}
}
public static void Main()
{
// use an XmlTextReader to open an XML document
XmlTextReader xtr = new XmlTextReader(@"c:\temp\Cust4.xml");
xtr.WhitespaceHandling = WhitespaceHandling.None;
// load the file into an XmlDocuent
XmlDocument xd = new XmlDocument();
xd.Load(xtr);
// get the document root node
XmlNode xnodDE = xd.DocumentElement;
// recursively walk the node tree
AddChildren(xnodDE, 0);
// close the reader
xtr.Close();
}
}
//File: Cust4.xml
/*
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Cust.xsl"?>
<NewDataSet>
<Customers>
<CustomerID>ALFKI</CustomerID>
<CompanyName>Alfreds Futterkiste</CompanyName>
<ContactName>Maria Anders</ContactName>
<ContactTitle>Sales Representative</ContactTitle>
<Address>Obere Str. 57</Address>
<City>Berlin</City>
<PostalCode>12209</PostalCode>
<Country>Germany</Country>
<Phone>030-0074321</Phone>
<Fax>030-0076545</Fax>
</Customers>
<Customers>
<CustomerID>BONAP</CustomerID>
<CompanyName>app</CompanyName>
<ContactName>Laurence Lebihan</ContactName>
<ContactTitle>Owner</ContactTitle>
<Address>12, rue des Bouchers</Address>
<City>Marseille</City>
<PostalCode>13008</PostalCode>
<Country>France</Country>
<Phone>91.24.45.40</Phone>
<Fax>91.24.45.41</Fax>
</Customers>
</NewDataSet>
*/
Load xml document from xml file
using System;
using System.Xml;
class XMLDemo{
[STAThread]
static void Main(string[] args) {
XmlDocument xmlDom = new XmlDocument();
xmlDom.AppendChild(xmlDom.CreateElement("", "books", ""));
XmlElement xmlRoot = xmlDom.DocumentElement;
XmlElement xmlBook;
XmlElement xmlTitle, xmlAuthor, xmlPrice;
XmlText xmlText;
xmlBook= xmlDom.CreateElement("", "A", "");
xmlBook.SetAttribute("property", "", "a");
xmlTitle = xmlDom.CreateElement("", "B", "");
xmlText = xmlDom.CreateTextNode("text");
xmlTitle.AppendChild(xmlText);
xmlBook.AppendChild(xmlTitle);
xmlRoot.AppendChild(xmlBook);
xmlAuthor = xmlDom.CreateElement("", "C", "");
xmlText = xmlDom.CreateTextNode("textg");
xmlAuthor.AppendChild(xmlText);
xmlBook.AppendChild(xmlAuthor);
xmlPrice = xmlDom.CreateElement("", "D", "");
xmlText = xmlDom.CreateTextNode("99999");
xmlPrice.AppendChild(xmlText);
xmlBook.AppendChild(xmlPrice);
xmlRoot.AppendChild(xmlBook);
Console.WriteLine(xmlDom.InnerXml);
xmlDom.Save("books.xml");
XmlDocument xmlDom2 = new XmlDocument();
xmlDom2.Load("books.xml");
Console.WriteLine(xmlDom2.InnerXml);
}
}
Load Xml Document Sample
/*
* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
* Version: 1
*/
using System;
using System.IO;
using System.Xml;
namespace Client.Chapter_22___XML
{
public class LoadXmlDocumentSample
{
private const String document = "books.xml";
public static void Main()
{
LoadXmlDocumentSample myLoadXmlDocumentSample = new LoadXmlDocumentSample();
myLoadXmlDocumentSample.Run(document);
}
public void Run(String args)
{
try
{
// Load the XML from file
Console.WriteLine();
Console.WriteLine("Loading file {0} ...", args);
XmlDataDocument myXmlDocument = new XmlDataDocument();
myXmlDocument.Load(args);
Console.WriteLine("XmlDataDocument loaded with XML data successfully ...");
// Display the XML document.
myXmlDocument.Save(Console.Out);
}
catch (Exception e)
{
Console.WriteLine("Exception: {0}", e.ToString());
}
}
}
}
//File:book.xml
/*
<book>
<title>Book title</title>
</book>
*/
Read An XML File
/*
* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
* Version: 1
*/
using System;
using System.IO;
using System.Xml;
namespace Client.Chapter_22___XML
{
public class ReadAnXMLFile
{
private const string doc = "Test.xml";
static void Main(string[] args)
{
XmlTextReader reader = null;
// Load the file with an XmlTextReader
reader = new XmlTextReader(doc);
// Read the File
while (reader.Read())
{
//TODO -
}
if (reader != null)
reader.Close();
}
}
}
Reading from an XML file.
using System;
using System.Xml;
public class MainClass {
public static void Main(string[] args) {
XmlTextReader reader = new XmlTextReader(args[0]);
while (reader.Read()) {
switch (reader.NodeType) {
case XmlNodeType.Element: // The node is an Element
Console.WriteLine("Element: " + reader.Name);
while (reader.MoveToNextAttribute()) // Read attributes
Console.WriteLine(" Attribute: [" +
reader.Name + "] = ""
+ reader.Value + """);
break;
case XmlNodeType.DocumentType: // The node is a DocumentType
Console.WriteLine("Document: " + reader.Value);
break;
case XmlNodeType.rument:
Console.WriteLine("Comment: " + reader.Value);
break;
}
}
reader.Close();
}
}
Read XML From URL
/*
* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
* Version: 1
*/
using System;
using System.IO;
using System.Xml;
namespace Client.Chapter_22___XML
{
public class ReadXMLFromURL
{
static void Main(string[] args)
{
string localURL = "http:\\somehost\\Test.xml";
XmlTextReader myXmlURLreader = null;
myXmlURLreader = new XmlTextReader (localURL);
while (myXmlURLreader.Read())
{
//TODO -
}
if (myXmlURLreader != null)
myXmlURLreader.Close();
}
}
}