Generieren Sie dynamisch XML-Dateien mit Buchinformationen über C#

黄舟
Freigeben: 2017-01-19 11:02:49
Original
1353 Leute haben es durchsucht

Generieren Sie dynamisch eine XML-Datei mit Buchinformationen (Books.xml) über C#. Die Datei lautet wie folgt:

<?xml version="1.0" encoding="iso-8859-1"?>   
<bookstore>   
  
<book id="1" category="CHILDREN">   
<title>Harry Potter</title>   
<author>J K. Rowling</author>   
<publishDate>2005-08-15</publishDate>   
<price>29.99</price>   
</book>   
  
<book id="2" category="WEB">   
<title>Learning XML</title>   
<author>Erik T. Ray</author>   
<publishDate>2003-10-18</publishDate>   
<price>39.95</price>   
</book>   
  
</bookstore>
Nach dem Login kopieren

Methode 1: Verwenden Sie StringBuilder, um XML zu verbinden

/// <summary> 
/// 创建图书信息XML 
/// </summary> 
public void CreateBookXML(string fileName) 
{ 
StringBuilder xmlResult = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); 
List<BookInfo> bookList = GetBookList(); //获取图书列表 
if (bookList != null && bookList.Count > 0) 
{ 
xmlResult.Append("<bookstore>"); 
foreach (BookInfo book in bookList) 
{ 
xmlResult.AppendFormat("<book id=\"{0}\" category=\"{1}\">", book.BookId, book.Category); 
xmlResult.AppendFormat("<title>{0}</title>", book.Title); 
xmlResult.AppendFormat("<author>{0}</author>", book.Author); 
xmlResult.AppendFormat("<publishDate>{0}</publishDate>", book.PublishDate.ToString("yyyy-MM-dd")); 
xmlResult.AppendFormat("<price>{0}</price>", book.Price); 
xmlResult.Append("</book>"); 
} 
xmlResult.Append("</bookstore>"); 
} 

//写入文件 
try 
{ 
//1.创建文件流 
FileStream fileStream = new FileStream(fileName, FileMode.Create); 
//2.创建写入器 
StreamWriter streamWriter = new StreamWriter(fileStream); 
//3.将内容写入文件 
streamWriter.WriteLine(xmlResult); 
//4.关闭写入器 
streamWriter.Close(); 
//5.关闭文件流 
fileStream.Close(); 
} 
catch (Exception e) 
{ } 
}
Nach dem Login kopieren

Methode 2: XML mit der XmlTextWriter-Klasse erstellen

/// <summary> 
/// 创建图书信息XML 
/// </summary> 
/// <param name="fileName"></param> 
public void CreateBookXML(string fileName) 
{ 
try 
{ 
FileStream fileStream = new FileStream(fileName, FileMode.Create); 
XmlTextWriter writer = new XmlTextWriter(fileStream, Encoding.UTF8); 
List<BookInfo> bookList = GetBookList(); //获取图书列表 
if (bookList != null && bookList.Count > 0) 
{ 
writer.WriteStartDocument(); 
writer.WriteStartElement("bookstore"); //创建父节点 
foreach (BookInfo book in bookList) 
{ 
writer.WriteStartElement("book"); //创建子节点 
writer.WriteAttributeString("id", book.BookId.ToString()); //添加属性 
writer.WriteAttributeString("category", book.Category); 
//图书名称节点 
writer.WriteStartElement("title"); 
writer.WriteValue(book.Title); //节点赋值 
writer.WriteEndElement(); 
//图书作者节点 
writer.WriteStartElement("author"); 
writer.WriteValue(book.Author); 
writer.WriteEndElement(); 
//出版时间节点 
writer.WriteStartElement("publishDate"); 
writer.WriteValue(book.PublishDate.ToString("yyyy-MM-dd")); 
writer.WriteEndElement(); 
//销售价格节点 
writer.WriteStartElement("price"); 
writer.WriteValue(book.Price); 
writer.WriteEndElement(); 

writer.WriteEndElement(); //子节点结束 
} 
writer.WriteEndElement(); //父节点结束 
} 
writer.WriteEndDocument(); 
writer.Close(); 
fileStream.Close(); 
} 
catch (Exception e) 
{ } 
}
Nach dem Login kopieren


WriteStartDocument()-Methode: XML-Deklaration schreiben.
WriteEndDocument()-Methode: Schließt alle offenen Elemente oder Attribute und setzt den Writer auf den Startstatus zurück.
WriteStartElement(string localName)-Methode: Erstellt den Anfang eines Knotens.
WriteAttributeString(string localName, string value) Methode: Attribute zu Knoten hinzufügen.
WriteValue(value)-Methode: Weisen Sie dem Knoten einen Wert zu.

3. Andere Codes

3.1 Buchliste abrufen

/// <summary>   
/// 获取图书列表   
/// </summary>   
/// <returns></returns>   
public List<BookInfo> GetBookList()   
{   
List<BookInfo> bookList = new List<BookInfo>();   
BookInfo book1 = new BookInfo() {   
BookId = 1,   
Category = "CHILDREN",   
Title = "Harry Potter",   
Author = "J K. Rowling",   
PublishDate = new DateTime(2005,08,15),   
Price = 29.99   
};   
bookList.Add(book1);   
BookInfo book2 = new BookInfo()   
{   
BookId = 2,   
Category = "WEB",   
Title = "Learning XML",   
Author = "Erik T. Ray",   
PublishDate = new DateTime(2003,10,18),   
Price = 39.95   
};   
bookList.Add(book2);   
return bookList;   
}
Nach dem Login kopieren

3.2 Buchinformations-Entitätsklasse

/// <summary>   
/// 图书信息实体类   
/// </summary>   
public class BookInfo   
{   
public int BookId { set; get; } //图书ID   
public string Title { set; get; } //图书名称   
public string Category { set; get; } //图书分类   
public string Author { set; get; } //图书作者   
public DateTime PublishDate { set; get; } //出版时间   
public Double Price { set; get; } //销售价格   
}
Nach dem Login kopieren

Das Obige ist über C# Generieren Sie dynamisch den Inhalt der Buchinformations-XML-Datei. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage