Я пытаюсь преобразовать список html в xml-формат с помощью консольного приложения, но я сделал то, что планировал, и теперь я не знаю, как продолжить. Я поделюсь своим кодом и немного объясню. То, что я сейчас не знаю, и меня смущает, это то, где происходит «волшебство». Хорошо, я знаю, что мне нужно взять этот список со страницы, прочитать список со всеми тегами внутри, но что дальше, как я могу преобразовать этот список в 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++;
}
, а также класс News:
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' экспортировать его. Возможно, было проще просто построить XML, когда вы идете, используя 'XmlDocument' или LINQ to XML. –
Я согласен с Майком ... нет необходимости в промежуточном списке. Просто создайте свой XML напрямую, когда идете с XDocument. – SledgeHammer