私は最近、数日前に C# を開始し (Java から移行)、練習用にいくつかのコードを書いています。この現在のプログラムは、xml ファイルを読み取り、コンテンツを html テーブルに出力します。Visual Studio IDE を使用しています。エラーが表示されます:「テーブル」の開始タグが「本文」の終了タグと一致しません。これが私のコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using System.Xml.Linq;
namespace XML
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter the file name: ");
String fileName = Console.ReadLine();
Console.WriteLine("Enter output file");
String outFile = Console.ReadLine();
XDocument xml = XDocument.Load(Path.GetFullPath(outFile));
StreamWriter outf = new StreamWriter(Path.GetFullPath(outFile));
outputHTML(xml,outf);
outf.Close();
}
static void outputHTML(XDocument xml, StreamWriter outf)
{
outf.WriteLine("<!DOCTYPE html>");
outf.WriteLine("<html>");
outf.WriteLine("<body>");
outf.WriteLine("<table border='1'>");
while (xml.Root.HasElements)
{
outf.WriteLine("<tr>");
var products = from p in xml.Descendants("book")
select new
{
author = (String)p.Element("author"),
genre = (String)(String)p.Element("genre"),
title = (string)p.Element("title"),
price = (int)p.Element("price"),
publishDate = (String)p.Element("publish_date"),
Descrip = (String)p.Element(" ")
};
foreach (var product in products)
{
outf.WriteLine("<td>");
outf.WriteLine(product.author);
outf.WriteLine("</td>");
outf.WriteLine("<td>");
outf.WriteLine(product.title);
outf.WriteLine("</td>");
outf.WriteLine("<td>");
outf.WriteLine(product.genre);
outf.WriteLine("</td>");
outf.WriteLine("<td>");
outf.WriteLine(product.price);
outf.WriteLine("</td>");
outf.WriteLine("<td>");
outf.WriteLine(product.publishDate);
outf.WriteLine("</td>");
outf.WriteLine("<td>");
outf.WriteLine(product.Descrip);
outf.WriteLine("</td>");
}
outf.WriteLine("</tr>");
}
outf.WriteLine("</table>");
outf.WriteLine("</body>");
outf.WriteLine("</html>");
}
}
}
***また、誰かが C# を練習するために書くべきプログラムを推奨できれば、それは素晴らしいことです。
ありがとう