C# を使用して書籍情報 XML ファイルを動的に生成する
C# を使用して書籍情報 XML ファイル (Books.xml) を動的に生成します。ファイルは次のとおりです:
<?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>
方法 1: StringBuilder を使用して 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) { } }
方法 2: XmlTextWriter クラスを使用して XML を作成する
/// <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) { } }
XmlTextWriter クラス: XML データを含むストリームまたはファイルを生成する、高速でキャッシュ不可能な前方専用メソッドのプロビジョニング ライターを表します。
WriteStartDocument() メソッド: XML 宣言を書き込みます。
WriteEndDocument() メソッド: 開いている要素または属性を閉じ、ライターを開始状態にリセットします。
WriteStartElement(string localName) メソッド: ノードの先頭を作成します。
WriteAttributeString(string localName, string value) メソッド: ノードに属性を追加します。
WriteValue(value) メソッド: ノードに値を割り当てます。
3. その他のコード
3.1 書籍リストの取得
/// <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 書籍情報エンティティクラス
/// <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; } //销售价格 }
上記は、C# によって動的に生成された書籍情報 XML ファイルの内容です。 PHP 中国語 Web サイト (www.php .cn)!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。
