I'm trying to make a program on the c # to test the codes you need to be able to run a xml , read your data and enter them in a list. But for this, I preferred to use a MessageBox
to debug first.
My xml is a RSS Feed
that I go directly of my Tumblr pro user device (in this case, a computer). I'm using XmlDocument
to open the file and use GetElementsByTagName
to get the values.
As a gambiarra, I end up taking the title of Tumblr iPoema and its description Residency of works of amateur poets. There are online readers , as they use the same tags within item . I would also like to know if you can XmlNodeList
get the tags that are inside the Child item .
EDIT
I forgot to mention that I'm having trouble returning in the category
part of my xml because it returns, even though I start with i = 0
, as if the initial value were -1
and when it arrives at 20
it is empty.
EDIT 2 Resolved.
frmHome.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Xml;
namespace iPoema_CSharp
{
public partial class frmHome : Form
{
string FULLPATH, tipo;
string tempFolder = System.Environment.GetEnvironmentVariable("TEMP") + @"\";
string[] titulo = new string[21];
string[] texto = new string[21];
string[] autor = new string[25];
public frmHome()
{
InitializeComponent();
}
private void download(string url, string filename)
{
filename = tempFolder + filename;
// Apaga o arquivo antigo
File.Delete(filename);
// Baixa o arquivo
using (WebClient webClient = new WebClient())
{
webClient.DownloadFile(url, filename);
}
FULLPATH = filename;
}
private void readXML(string path)
{
XmlDocument doc = new XmlDocument();
doc.Load(path);
// Title
XmlNodeList titleList = doc.GetElementsByTagName("title");
for (int i = 0; i < 20; i++)
{
if (i == 0)
{
}
else
{
titulo[i] = titleList[i].InnerText;
}
}
// Description
XmlNodeList descList = doc.GetElementsByTagName("description");
for (int i = 0; i < 20; i++)
{
if (i == 0)
{
}
else
{
texto[i] = descList[i].InnerText;
}
}
// Category
XmlNodeList catList = doc.GetElementsByTagName("category");
for (int i = 0; i < 19; i++)
{
autor[i] = catList[i].InnerText;
}
}
private void bAtualizar_Click(object sender, EventArgs e)
{
download("http://www.ipoema.tumblr.com/rss", "iPoema.xml");
readXML(tempFolder + "iPoema.xml");
string text;
for (int x = 1; x <= 19; x++)
{
text = texto[x];
text = text.Replace("</p>", "\n");
text = text.Replace("<p>", "");
text = text.Replace("<br/>", "\n");
text = text.Replace("’", "'");
text = text.Replace("“", "\"");
text = text.Replace("”", "\"");
MessageBox.Show(text + "\n\n#" + autor[x], titulo[x], MessageBoxButtons.OK);
}
}
}
}
Link: iPoema RSS
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<description>
Residência de obras de poetas amadores.Há leitores online
</description>
<title>iPoema</title>
<generator>Tumblr (3.0; @ipoema)</generator>
<link>http://ipoema.tumblr.com/</link>
<item>
<title>Mente absurdamente louca</title>
<description>
<p>Este sou eu,<br/>todo fodido que nem eu não há,<br/>olha pro céu e pro mar,<br/>muitos dizem que me entendem,<br/>mas será que eles vivem como a gente?</p> <p>Poderia até ser uma vida legal,<br/>mas será que o amor pode ser natural?<br/>Só penso nisso todos os dias,<br/>sei que não sou as mil maravilhas,<br/>mas pense que, em um dia,<br/>já obteve vontade de nós termos uma vida, querida?</p> <p>Nascido para morrer sozinho, nunca,<br/>mas também não morrerei sofrendo nesta espelunca,<br/>toda suja de sentimentos vazios,<br/>todos nós estamos perto do rio<br/>das lamentações, onde não há multidões<br/>querendo lhe julgar por não saber ainda o que é namorar.</p> <p>Me sinto alienado nesse sentido abstrato,<br/>muito errado esses loucos controlados,<br/>mídia filho da ****,<br/>controlando os amigos nessa vida estúpida,<br/>toda inculta, vivendo sem conduta,<br/>tomando multa, na sua fuça retardada,<br/>momentos loucos com sua vida idolatrada,<br/>que nem momentos como estes serão lembrados,<br/>nem honrados pelos seres humanos movidos pelo pouco que lhes é dado.</p>
</description>
<link>http://ipoema.tumblr.com/post/80971539116</link>
<guid>http://ipoema.tumblr.com/post/80971539116</guid>
<pubDate>Fri, 28 Mar 2014 10:13:37 -0300</pubDate>
<category>Alexandre de Souza</category>
</item>
[...]
</channel>
</rss>