繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> TextXmlHelp

TextXmlHelp

2007-07-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:namespace TestXMLHelper { using System; using System.XML; using System.Collections; using RobBirdwell.XMLHelper; /******* The following classes serve as a simple test app for the XMLHelper module....
关键字:TextXmlHelp

namespace TestXMLHelper {

using System;

using System.XML;

using System.Collections;

using RobBirdwell.XMLHelper;

/*******

The following classes serve as a simple test app for the XMLHelper module.

It attempts to load "MyTestObj.XML" - the text for this is at the bottom

of this listing.

This is a work in progress and provided solely to test and learn C#.

********/

class TestXMLHelper // Test class for XMLHelper

{

static int Main(string[] args)

{

Console.WriteLine("Begin XML Load test...");

MyManager nm = new MyManager();

if (nm.Load() == true)

Console.WriteLine("End Load Test - XML Data Loaded Successfully!");

else

Console.WriteLine("End Load Test - XML Load FAILED!");

Console.WriteLine("Begin XML Create test...");

// Demonstrate how we can create an XML document from scratch...

XMLHelper myXML = new XMLHelper();

myXML.LoadXML("", XMLHelper.LoadType.FromString);

// Now create some children - Elements & Attributes...

XMLElement XMLChildFolder = myXML.CreateNodeElement(myXML.RootNode, "ChildFolder", "");

XMLAttribute XMLChildAttribute1 = myXML.CreateNodeAttribute(XMLChildFolder, "Price", "12.00");

XMLElement XMLChildElement = myXML.CreateNodeElement(XMLChildFolder, "ChildElementOfChildFolder", "Test element with a to test encoding");

XMLElement XMLSubChildFolder = myXML.CreateNodeElement(XMLChildFolder, "SubFolderOfChildFolder", "");

XMLElement XMLSubChildElement = myXML.CreateNodeElement(XMLSubChildFolder, "SubChildElement", "This is a sub element!");

XMLAttribute XMLChildAttribute2 = myXML.CreateNodeAttribute(XMLSubChildFolder, "Price", "10.00");

// Now save this XML document...

myXML.SaveToFile("myXMLTest.XML");

Console.WriteLine("End XML Create test - view myXMLTest.XML");

// Now demonstrate how we can load XML, modify it, and resave it!

Console.WriteLine("Begin XML Load/Modify/Save test...");

XMLHelper modifyXML = new XMLHelper();

modifyXML.LoadXML("myXMLTest.XML", XMLHelper.LoadType.FromLocalFile);

// Change something

ArrayList foundNodes = modifyXML.GetChildNodesFromCriteria("descendant::ChildFolder");

foreach (XMLNode theNode in foundNodes)

{

XMLNode nodeToModify = modifyXML.GetFirstChildXMLNode(theNode, "ChildElementOfChildFolder");

if (nodeToModify != null)

modifyXML.ModifyNodeElementValue(nodeToModify, "Modified value: " + DateTime.Now);

}

modifyXML.SaveToFile("myModifiedXMLTest.XML");

Console.WriteLine("End XML Load/Modify/Save test - see 'myModifiedXMLTest.XML' to see modification results to ChildElementOfChildFolder");

// Now show that we can load XML from a URL...

// Note: if behind a firewall this fail - comment out if necessary!

Console.WriteLine("Start XML Load/Save test from URL");

XMLHelper readFromURL = new XMLHelper();

string sTestURL = "http://www.birdwellmusic.com/bmpdata.XML";

readFromURL.LoadXML(sTestURL, XMLHelper.LoadType.FromURL);

readFromURL.SaveToFile("fromURL.XML");

Console.WriteLine("End XML Load/Save test from URL - see fromURL.XML");

return 0;

}

}

// A test class that contains some data, arrays, etc. The usual bits...

class MyTestObj

{

private string m_ID;

private string m_DateCreated;

private string m_DateModified;

private string m_Text;

private ArrayList m_URLS = new ArrayList();

public string ID

{

get {return m_ID; }

set {m_ID = value;}

}

public string DateCreated

{

get {return m_DateCreated; }

set {m_DateCreated = value; }

}

public string DateModified

{

get {return m_DateModified; }

set {m_DateModified = value; }

}

public string Text

{

get {return m_Text; }

set {m_Text = value;}

}

public void AddMyURL(MyURL MyURL)

{

m_URLS.Add(MyURL);

}

}

// Another test class - contains some members to store URL link info...

class MyURL

{

private string m_Label;

private string m_Link;

public string Label

{

get {return m_Label; }

set {m_Label = value;}

}

public string Link

{

get {return m_Link; }

set {m_Link = value;}

}

}

// A test "manager" class that wraps up our test classes and uses the XMLHelper

class MyManager

{

private XMLHelper m_XMLHelper;

private ArrayList m_MyTestObjArray = new ArrayList();

public MyManager()

{

m_XMLHelper = new XMLHelper();

}

public void AddMyTestObj(MyTestObj MyTestObj)

{

m_MyTestObjArray.Add(MyTestObj);

}

public bool Load()

{

if (m_XMLHelper.LoadXML("MyTestObj.XML", XMLHelper.LoadType.FromLocalFile) == false)

return false;

XMLNodeList objNodes = m_XMLHelper.GetChildNodesFromRoot("Obj");

foreach (XMLNode XMLNode in objNodes)

{

MyTestObj MyTestObj = new MyTestObj();

MyTestObj.ID = m_XMLHelper.GetAttributeValue(XMLNode, "ID");

MyTestObj.DateCreated = m_XMLHelper.GetAttributeValue(XMLNode, "DateCreated");

MyTestObj.DateModified = m_XMLHelper.GetAttributeValue(XMLNode, "DateModified");

MyTestObj.Text = m_XMLHelper.GetChildElementValue(XMLNode, "Text");

Console.WriteLine("DEBUG: ID={0}, DateCreated={1}, DateModified={2}, Text={3}", MyTestObj.ID, MyTestObj.DateCreated, MyTestObj.DateModified, MyTestObj.Text);

ArrayList urlNodes = m_XMLHelper.GetRecursiveChildNodesFromParent(XMLNode, "URL");

foreach (XMLNode urlNode in urlNodes)

{

MyURL MyURL = new MyURL();

MyURL.Label = m_XMLHelper.GetChildElementValue(urlNode, "Label");

MyURL.Link = m_XMLHelper.GetChildElementValue(urlNode, "Link");

MyTestObj.AddMyURL(MyURL);

Console.WriteLine("DEBUG: URL Link={0}", MyURL.Link);

}

AddMyTestObj(MyTestObj);

}

return true;

}

}

} // end TestXMLHelper namespace

/*************

MyTestObj.XML

This is a test

http://www.birdwellmusic.com

http://www.google.com

This is a second node!

www.google.com

www.hp.com

***********/

责任编辑:admin
相关文章