私はコンソールアプリケーションでxmlフォーマットにHTMLリストを変換しようとしていますが、私は何を計画したのですか?私は自分のコードを共有し、少し説明します。私が今知りませんが、私を混乱させているのは「魔法」が起こる場所です。私はページからそのリストを取らなければならないことを知っている、内部のすべてのタグでリストを読んで、次に何を、どのようにXML形式にそのリストを変換できますか?私はxmlに新しいです私はいくつかの基本を知っているので、私を助けてください。ここでリストをhtmlからxmlフォーマットに変換する
は、アプリケーションです:
static void Main(string[] args)
{
string _url = "http://example.com/media";
int newsCounter = 0;
List<News> _newsList = new List<News>();
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(_url);
HtmlNode ulNode = doc.DocumentNode.SelectSingleNode("//ul[@class='content articles']");
HtmlNodeCollection liNode = ulNode.SelectNodes(".//li");
foreach (HtmlNode node in ulNode.SelectNodes(".//div[@class='article_box']"))
{
var news = new News();
news.Imgsrc = node.FirstChild.SelectSingleNode("//img").Attributes["src"].Value;
var nodes = doc.DocumentNode.FirstChild.SelectNodes("//img[@src]");
foreach (HtmlNode childNode in node.SelectNodes(".//div[@class='box_info']"))
{
// string src = node.SelectSingleNode("//img").Attributes["src"].Value;
foreach(HtmlNode _node in childNode.SelectNodes(".//h3"))
{
news.Link = "";
news.Title = _node.FirstChild.InnerText;
news.Date = _node.NextSibling.NextSibling.InnerText;
news.Text = _node.NextSibling.NextSibling.NextSibling.NextSibling.InnerText;
}
}
_newsList.Add(news);
newsCounter++;
}
ともニュースクラス:
public class News
{
public string Imgsrc { get; set; }
public string Title { get; set; }
public string Link { get; set; }
public string Date { get; set; }
public string Text { get; set; }
}
これらの私はlist.Iから読み取る必要があり、すべてのパラメータは、それらとリターンを読み取ることができていますされています私のリストのすべてのニュース、しかし次に何、どのようにXML形式に私のリストを変換するには?どんな提案も歓迎されます。
このコードは、「News」を「Serializable」とマークしてから、「XmlSerializer」を使ってエクスポートするのが最も簡単なコードです。 'XmlDocument'やLINQ to XMLを使ってXMLを構築する方が簡単かもしれません。 –
私はMikeに同意します...中間リストは必要ありません。 XDocumentを使用すると、XMLを直接ビルドすることができます。 – SledgeHammer