Maison > Article > développement back-end > Générer dynamiquement des fichiers XML d'informations sur les livres via C#
Générer dynamiquement un fichier XML d'informations sur le livre (Books.xml) via C#, le fichier est le suivant :
<?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>
Méthode 1 : utiliser StringBuilder pour épisser XML
/// <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) { } }
Méthode 2 : Créer du XML à l'aide de la classe XmlTextWriter
/// <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) { } }
Méthode WriteStartDocument() : Écrire une déclaration XML.
Méthode WriteEndDocument() : ferme tous les éléments ou attributs ouverts et réinitialise le rédacteur à l'état de démarrage.
Méthode WriteStartElement(string localName) : Crée le début d'un nœud.
Méthode WriteAttributeString(string localName, string value) : ajoutez des attributs aux nœuds.
Méthode WriteValue(value) : attribue une valeur au nœud.
3. Autres codes
3.1 Obtenir la liste des livres
/// <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; }
3.2 Classe d'entité d'information sur les livres
/// <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; } //销售价格 }
Ce qui précède est via C# Générez dynamiquement le contenu du fichier XML d'informations sur le livre Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !