3
using HtmlAgilityPack;
using JoeBlogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
namespace ReaderXML
{
class Program
{
static void Main(string[] args)
{
var website = LeitorDeXML("http://SITE ORIGEM/").ToArray();
var total = website.Count();
for (int i = 1; i < total; i++)
{
Postagem(website[i]);
}
}
private static IEnumerable<string> LeitorDeXML(string url)
{
Console.WriteLine("Carregando " + string.Format("{0}sitemap.xml", url));
XmlReader xmlReader = new XmlTextReader(string.Format("{0}sitemap.xml", url));
XElement element = XElement.Load(string.Format("{0}sitemap.xml", url));
XName urlNodes = XName.Get("url", "http://www.sitemaps.org/schemas/sitemap/0.9");
XName locNodes = XName.Get("loc", "http://www.sitemaps.org/schemas/sitemap/0.9");
List<string> resultado = new List<string>();
// Pega os últimos 10 elementos da lista
List<XElement> lista = Enumerable.Reverse(element.Elements(urlNodes)).Take(10).Reverse().ToList();
foreach (XElement e in lista)
{
var postUrl = e.Element(locNodes).Value;
resultado.Add(postUrl);
}
return resultado;
}
private static void Postagem(string website)
{
try
{
//LINK,USER,SENHA WP
string link = "http://SITE NOVO";
string username = "user wp";
string password = "senha wp";
//Leitura do HTML
HtmlWeb web = new HtmlWeb();
HtmlDocument resultat = web.Load(website);
//Separar TITULO e CONTEUDO
string titulopost = resultat.DocumentNode.SelectNodes("//*[contains(@class,'entry-title')]")[0].InnerHtml;
string conteudo = resultat.DocumentNode.SelectNodes("//*[contains(@class,'entry-content')]")[0].InnerHtml; //ERRO AQUI
//Entrada no wp
var wp = new WordPressWrapper(link + "/xmlrpc.php", username, password);
var post = new Post();
//Categoria -- Não está funcionando ainda a parte da criação da categoria
int website_corpo = 25;
string categoria = website.Substring(website_corpo);
int indexof_barra = categoria.IndexOf("/");
int comeco_cat = 0;
string categoria_f = categoria.Substring(comeco_cat, indexof_barra);
//Data
post.DateCreated = DateTime.Today.AddHours(0);
//Postagem
post.Title = titulopost;
post.Body = conteudo;
wp.NewPost(post, true);
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e);
Console.ReadKey();
}
}
}
}
You don’t cross line 63...
Error: System.NullReferenceException: Object reference not set to an instance of an object
I have a for: var website = Leitordexml("http://SITE LINK TO READ SITEMAP/"). Toarray(); var total = website.Count(); for (int i = 1; i < total; i++) { Posting(website[i]); } the Leitordexml method is the method that will read the Sitemap... the Posting method does not know if it is relevant... Daria to modify the FOR I already have ?
– Raul Correia
Go back and forth on this line. foreach (Xelement and in list) {
– Marconi
How would this FOR?
– Raul Correia
foreach (Xelement e in list) { for(int i = 0; i < list.Count; i-;) { var postUrl = e.Element(locNodes). Value; countPost++; urls.Add(postUrl); } } This? 'Cause if that’s what’s wrong...
– Raul Correia
I’m sorry, but since you send a message through chat?
– Raul Correia