当前位置:编程学习 > C#/ASP.NET >>

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("<MyRootNode/>", 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 <tag> 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(xml

上一个:XmlConnection
下一个:XmlDataAdapter

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,