xml读写

 

namespace ConvenanceCompany.SQLServerDAL
{
  
public  class Company:ICompany {

      
/// <summary>
      
/// Method to get Company Information
      
/// </summary>
      
/// <returns></returns>

      public CompanyInfo GetCompany(string CompanyInfoFileName)
      
{
          
//Set up a return value
          CompanyInfo company = null;

          
//Get Information from xmlfile
          Dictionary<stringstring> companyinfo = ReadCompanyInfoFile(CompanyInfoFileName);

          
//Fill in company object
          if (companyinfo != null)
          
{
              company 
= new CompanyInfo();
              
if (companyinfo.ContainsKey("Name"))
                  company.Name 
= companyinfo["Name"];
              
else
                  company.Name 
= "";
              
if (companyinfo.ContainsKey("InternetAdress"))
                  company.InternetAddress 
= companyinfo["InternetAdress"];
              
else
                  company.InternetAddress 
= "";
              
if (companyinfo.ContainsKey("BriefIntroduction"))
                  company.BriefIntroduction 
= companyinfo["BriefIntroduction"];
              
else
                  company.BriefIntroduction 
= "";
              
if (companyinfo.ContainsKey("TelFirst"!= null)
                  company.TelFirst 
= companyinfo["TelFirst"];
              
else
                  company.TelFirst 
= "";
              
if (companyinfo.ContainsKey("TelSecond"))
                  company.TelSecond 
= companyinfo["TelSecond"];
              
else
                  company.TelSecond 
= "";
              
if (companyinfo.ContainsKey("TelMobile"))
                  company.TelMobile 
= companyinfo["TelMobile"];
              
else
                  company.TelMobile 
= "";
              
if (companyinfo.ContainsKey("Postalcode"))
                  company.Postalcode 
= companyinfo["Postalcode"];
              
else
                  company.Postalcode 
= "";
              
if (companyinfo.ContainsKey("Email"))
                  company.Email 
= companyinfo["Email"];
              
else
                  company.Email 
= "";
              
if (companyinfo.ContainsKey("Address"))
                  company.Address 
= companyinfo["Address"];
              
else
                  company.Address 
= "";
              
if (companyinfo.ContainsKey("Copyright"))
                  company.Copyright 
= companyinfo["Copyright"];
              
else
                  company.Copyright 
= "";
          }

          
return company;
       }


      
public Dictionary<stringstring> ReadCompanyInfoFile(string CompanyInfoFileName)
      
{
          
//Memory CompanyInfo file inforomation
          Dictionary<stringstring> Companyinfo = new Dictionary<stringstring>();
          XmlTextReader readerCompanyInfo 
= null;
          
string startElement = "";
          
string endElement = "";
          
string textNodeContent = "";
          
bool identifierTextNodeContent = false;//标记内容是否为空
          try
          
{
              readerCompanyInfo 
= new XmlTextReader(CompanyInfoFileName);
              
while (readerCompanyInfo.Read())
              
{
                  
switch (readerCompanyInfo.NodeType)
                  
{
                      
case XmlNodeType.Element:
                          startElement 
= readerCompanyInfo.Name;
                          identifierTextNodeContent 
= false;
                          
break;
                      
case XmlNodeType.Text:
                          identifierTextNodeContent 
= true;
                          textNodeContent 
= readerCompanyInfo.Value;
                          
break;
                      
case XmlNodeType.EndElement:
                          endElement 
= readerCompanyInfo.Name;
                          
if (startElement == endElement)
                          
{
                              
if (identifierTextNodeContent)
                                  Companyinfo.Add(endElement, textNodeContent);
                              
else
                                  Companyinfo.Add(endElement, 
"");
                          }

                          
break;
                  }

              }

          }

          
catch (XmlException )
          
{
              Companyinfo 
= null;
          }

          
finally
          
{
              
//Close CompanyInfo file!
              if(readerCompanyInfo!=null)
                  readerCompanyInfo.Close();
          }

          
return Companyinfo;
      }


      
/// <summary>
      
/// Mothod to modify companyinfo
      
/// </summary>
      
/// <returns></returns>

      public bool ModifyCompany(string CompanyInfoFileName,string name, string internetAdress, string briefIntroduction, string telFirst, string telSecond, string telMobile, string postalcode, string email, string address, string copyright)
      
{
          XmlTextWriter xmlCompanyInfo;
          
try
          
{
              xmlCompanyInfo 
= new XmlTextWriter(CompanyInfoFileName, System.Text.Encoding.GetEncoding("GB2312"));
              xmlCompanyInfo.Formatting 
= Formatting.Indented;
              xmlCompanyInfo.Indentation 
= 3;

              xmlCompanyInfo.WriteStartDocument();
              xmlCompanyInfo.WriteStartElement(
"Company");

              xmlCompanyInfo.WriteStartElement(
"Name");
              xmlCompanyInfo.WriteString(name);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"InternetAdress");
              xmlCompanyInfo.WriteString(internetAdress);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"BriefIntroduction");
              xmlCompanyInfo.WriteString(briefIntroduction);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"Tel");
              xmlCompanyInfo.WriteStartElement(
"TelFirst");
              xmlCompanyInfo.WriteString(telFirst);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"TelSecond");
              xmlCompanyInfo.WriteString(telSecond);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"TelMobile");
              xmlCompanyInfo.WriteString(telMobile);
              xmlCompanyInfo.WriteEndElement();
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"Postalcode");
              xmlCompanyInfo.WriteString(postalcode);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"Email");
              xmlCompanyInfo.WriteString(email);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"Address");
              xmlCompanyInfo.WriteString(address);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteStartElement(
"Copyright");
              xmlCompanyInfo.WriteString(copyright);
              xmlCompanyInfo.WriteEndElement();

              xmlCompanyInfo.WriteEndElement();
              xmlCompanyInfo.Close();

          }

          
catch (XmlException e)
          
{
              
return false;
          }

          
finally
          
{
              
//if (xmlCompanyInfo != null)
                  ////xmlCompanyInfo.Close();
          }

          
return true;
      }

    }

}


上面是对下面xml文件进行读写:

<?xml version="1.0" encoding="gb2312"?>
<Company>
   
<Name />
   
<InternetAdress />
   
<BriefIntroduction />
   
<Tel>
      
<TelFirst />
      
<TelSecond />
      
<TelMobile />
   
</Tel>
   
<Postalcode />
   
<Email />
   
<Address />
   
<Copyright />
</Company>
原文地址:https://www.cnblogs.com/wuming/p/1222807.html